我有一个Python代码,包含以下行:
# Poisson model
lambda_param = 3.0
x_model = numpy.linspace(0, 10, num=11, dtype=int)
y_model = numpy.zeros(10)
index = 0
for x in x_model:
y_model[index] = numpy.power(lambda_param, x) / math.factorial(x) * numpy.exp(-lambda_param)
index += 1
字符串
我想用一种更Python化的方式来写这段代码--不使用for循环。
我试过这个:
y_model = numpy.power(lambda_param, x_model) / math.factorial(x_model) * numpy.exp(-lambda_param)
型
但这似乎不起作用,我猜是因为math.factorial
不知道如何操作类似于对象的数组。
有办法做到这一点吗?
2条答案
按热度按时间envsm3lx1#
这是泊松分布的
pmf
。使用scipy.stats.poisson
:注意对于泊松分布,x
必须是整数:字符串
zpjtge222#
您可以使用
scipy.special.factorial
作为支持通过numpy数组广播的阶乘函数。字符串