python - 有没有比我目前的方法更容易使用 scipy.stats.poisson 的方法?

标签 python numpy scipy poisson

我使用 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 数组,我无法自己或在线弄清楚该怎么做。

除此之外还有更短的方法吗?

最佳答案

您始终可以将值作为 numpy 数组传递:

def fn(homeS,awayS):
    S = sum(poisson.pmf(np.array([0,1,0,1,2,0]),homeS)*poisson.pmf(np.array([0,0,1,1,0,2]),awayS))
    return round(float(np.array2string(100*S)), 5)

fn(2,3)
12.4652

关于python - 有没有比我目前的方法更容易使用 scipy.stats.poisson 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61828731/

相关文章:

python - sympy 匹配在取模方面有困难

python - 使用 re.sub 但从搜索模式中保留一些字母?

Python - 如果我删除 Lambda 那么应用程序未定义?

csv - 在与真实数据相同的图中绘制多项式回归

python - 使用 Numpy 数组创建唯一数组

python - 四倍精度特征值、特征向量和矩阵对数

python - 如何使 SQL 返回重复项?

python - 用 python 绘制 3d 笛卡尔网格

python - python 中只有左基的峰日珥的累积和

python - 使用 numpy 或 scipy 的 sympy 代码的运行时优化