【发布时间】:2022-01-10 14:42:09
【问题描述】:
我正在尝试将泊松分布拟合到这个 plot,而我被教导这样做的方法是将泊松分布定义为函数,然后使用 linspace 绘制函数。
def poisson_m(k, l):
return ((l ** k)/math.factorial(k)) * np.exp ** (-l)`
lin = np.linspace(0, 187, 100)
ax.plot(lin, poisson_m(lin, 20), 'r--', label="Poissonverdeling")
现在 l 只是一个随机猜测,但我们被教导要最小化这个以找到最佳拟合(这是我拟合泊松分布的最终目标)。 到目前为止,这对我有用,但是对于此功能,我收到错误消息
TypeError: 只有整数标量数组可以转换为标量索引
我不确定这对我的 linspace 和函数意味着什么。我试图阅读类似的问题,但这些问题都使用了截然不同的方式来绘制泊松分布,所以我想我想知道是否有可能这样做并以某种方式消除错误,因为它会是理想的做法是按照我得到的指示进行。我知道 scipy 中有泊松分布,但我不知道如何使用它来找到最适合 l 的分布,鉴于这是目标,我没有决定使用那个。
【问题讨论】:
-
math.factorial未矢量化,因此不适用于数组。您必须使用scipy.special.factorial(k)。同样np.exp ** (-l)无效,它是np.exp(-1)
标签: python numpy matplotlib