如何修复 python 编程中的不同结果

How to fix different result in python programming

我尝试使用 scipy、numpy 显示泊松分布。

泊松分布定义:

exp(-lambda) * (lambda^k)/k!

k 是随机变量,范围从 0 到 255,lambda 是选择的参数 25。

x = np.linspace(0, 255, 256)
(np.exp(-lambda)*np.power(lambda,x))/scipy.misc.factorial(x)

result in debugging monitor

plot result

从上面的数字来看,结果不错...

但是,如果我用单个值而不是使用 linspace 计算它,所有结果都是零。 例如

x = 20
(np.exp(-lambda)*np.power(lambda,x))/scipy.misc.factorial(x)

结果 = 0...

但是之前使用 linspace 的结果是 0.00886

有时最明显的解决方案可能就在我们面前,但开发人员仍然看不到。

尝试做:

x = 20
(np.exp(-lambda)*np.power(lambda,x))/scipy.misc.factorial(x * 1.0)

我们将 x 乘以 1.0 得到 "convert" 浮点数,这样除法就可以正确计算小数