【发布时间】:2020-05-15 21:35:46
【问题描述】:
我使用 scipy.stats 来计算不同足球比赛中进球的泊松概率分布,但我不禁想到有一种更简单的方法。
假设我正在尝试计算总进球数少于 3 个的比赛作为最终结果的概率。目前我正在使用这样的东西(我的测试运行结果是正确的):
def under25(self, homeS, awayS):
under25 = 100 * (((poisson.pmf(0, homeS) * poisson.pmf(0, awayS)) +
(poisson.pmf(1, homeS) * poisson.pmf(0, awayS)) +
(poisson.pmf(0, homeS) * poisson.pmf(1, awayS)) +
(poisson.pmf(1, homeS) * poisson.pmf(1, awayS)) +
(poisson.pmf(2, homeS) * poisson.pmf(0, awayS)) +
(poisson.pmf(0, homeS) * poisson.pmf(2, awayS))))
return round(float(np.array2string(under25)), 5)
如果我将参数作为under25(2, 3) 传递,则输出为12.4652,这是正确的。
我已经尝试了scipy.stats.poisson 下的所有函数,但它们都返回 numpy 数组,我无法自己或在线弄清楚该怎么做。
除此之外还有更短的方法吗?
【问题讨论】:
标签: python numpy scipy poisson