RuntimeWarning:绘制泊松分布时在 power 中遇到无效值

RuntimeWarning: invalid value encountered in power while plotting poisson distribution

我要运行这段代码

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()

其中parameters = 0.00213553

但是每次出现这个警告时:

 RuntimeWarning: invalid value encountered in power
 return (lamb**k/factorial(k)) * np.exp(-lamb)

只出现一条水平线。

我检查过类似的问题,但它们并没有真正帮助。 我还尝试将函数 return 的值转换为 float128,但这也没有用。 (使用 Python 2.7.6 64-bit

我真的不知道你用的是哪个factorial。但是当我使用 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()