python - 运行时警告: invalid value encountered in power while plotting poisson distribution

标签 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-', 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()

enter image description here

关于python - 运行时警告: invalid value encountered in power while plotting poisson distribution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37764085/

相关文章:

python - SQLAlchemy 的正确模型定义是什么以避免错误消息 : AttributeError: 'InstrumentedList' object has no attribute'?

python - torch 值错误 : optimizer got an empty parameter list

python - 如何以有效的方式找到两个轮廓集之间的所有交点

java - 带有运行时证书的 SSL Java

java - 从字符串变量 Java 进行转换

python - 如何使用不均匀子数组作为平铺来平铺一维 numpy 数组?

python - 正确实现 SI、SIS、SIR 模型(python)

python - 如何在 matplotlib 中计算极坐标图密度

python - 使用 Python matplotlib-venn 查找相交值

java - 在运行时设置 java.util.logging.config.file