Python RuntimeWarning:绘制泊松分布时在power中遇到无效值
我想运行这段代码Python RuntimeWarning:绘制泊松分布时在power中遇到无效值,python,matplotlib,runtime,Python,Matplotlib,Runtime,我想运行这段代码 import numpy as np import matplotlib.pyplot as plt from scipy.misc import factorial def poisson(k, lamb): return (lamb**k/factorial(k)) * np.exp(-lamb) x_plot = np.linspace(0, 10, 100) plt.plot(x_plot, poisson(x_plot, parameters), 'r-'
import numpy as np
import matplotlib.pyplot as plt
from scipy.misc import factorial
def poisson(k, lamb):
return (lamb**k/factorial(k)) * np.exp(-lamb)
x_plot = np.linspace(0, 10, 100)
plt.plot(x_plot, poisson(x_plot, parameters), 'r-', lw=2)
plt.show()
其中参数=0.00213553
但每次出现此警告时:
RuntimeWarning: invalid value encountered in power
return (lamb**k/factorial(k)) * np.exp(-lamb)
只出现一条水平线
我已经检查过类似的问题,但它们没有真正的帮助。
我还尝试将函数返回值强制转换为float128
,但也没有成功。
(使用Python2.7.6 64位)我真的不知道您使用的是哪个
factorial
。但是当我使用math.factorial
时,代码甚至不能工作。然后我尝试使用scipy.misc.factorial
,它可以真正地将numpy数组作为输入。当我运行以下命令时,它不会给我任何错误或警告
import numpy as np
import matplotlib.pyplot as plt
import scipy.misc
parameters = 0.00213553
def poisson(k, lamb):
return (lamb**k/scipy.misc.factorial(k)) * np.exp(-lamb)
x_plot = np.linspace(0, 10, 100)
plt.plot(x_plot, poisson(x_plot, parameters), 'r-', lw=2)
plt.show()
盲目猜测,因为没有提供阶乘()的定义,代码遗漏了导入语句,缩进错误等等。但相信错误,我会尝试查看部分结果,暗示幂的候选参数可能是np.exp()中的**
运算符的参数或-lamb
参数…我编辑了我的问题并添加了完整的代码。是的,我在scipy.misc中使用了阶乘,但它没有显示正确的图形@MaThMax@Shi.Bi,你能试着把你的行分成不同的部分吗,比如(lamb**k,
scipy.misc.factorial(k)`,np.exp(-lamb)
,看看是哪一部分导致了问题?如果这只是一个运行时警告而不是错误,为什么你看不到正确的图表?你能看到警告的完整列表吗?我终于找到了答案。谢谢:)我必须调整plt.xlim和plt.ylim才能看到结果。@马思马克斯