我想运行这段代码
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,但这也不起作用。
(使用Python 2.7.6 64位
)
最佳答案
我真的不知道您正在使用哪个阶乘
。但是当我使用 math.factorial 时,代码甚至无法工作。然后我尝试使用 scipy.misc.factorial,它确实可以将 numpy array 作为输入。当我运行以下命令时,它不会给我任何错误或警告。
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()
关于python - 运行时警告: invalid value encountered in power while plotting poisson distribution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37764085/