python - 使用 scipy.stats.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
推荐阅读
- tensorflow - TensorFlow 构建选项可禁用不受支持的 GPU 的半精度
- python - 如何修复导入错误:scipy 的 python 中的 DLL 加载失败?
- html - 来自社交媒体的 quelltext 字母中的所有这些符号是什么,而不是 HTML 标签?
- python - 如何在循环中调用的函数内跟踪时间和日志数据值?
- windows - SVN可以保存文件夹图标吗
- google-cloud-pubsub - PubSub 返回 503 - 服务一直不可用
- swift - 如何将另一个按钮添加到按钮?
- c - Programming in C: Expected constant expression error
- azure - 无需登录即可对 Azure REST API 进行身份验证
- c++ - 多个运算符 "[]" 匹配这些操作数