[英]Is there a faster way to loop through numpy matrix
一直在嘗試如何計算兩支球隊得分的泊松概率,但是當將可能的得分線相加時,它們的總和不會為零,並且范圍為 0 到 6 甚至還不夠。
from scipy.stats import poisson
import numpy as np
home_goals_vector = poisson(1.23).pmf(np.arange(0, 6))
away_goals_vector = poisson(2.23).pmf(np.arange(0, 6))
print(home_goals_vector)
m = np.outer(home_goals_vector, away_goals_vector)
print(m[1, 1] + m[2, 1] + m[3, 1] + m[4, 1] + m[1, 2] + m[2, 2] + m[2, 3] + m[2, 4] + m[3, 2] + m[3, 3] + m[3, 4] + m[4, 1] + m[4, 2] + m[4, 4] + m[1, 3] + m[1, 4])
print(np.sum(m))
現在,我知道變量 m 包含可能的分數和概率,有沒有更快的方法來做到這一點,因為我需要所有可能的分數,以便分數線都沒有零和分數線都為零,如果我加起來他們的概率我得到 100%
在評論中經過深思熟慮后,您似乎想從兩個概率向量的外積的總和中排除第零行和列。
這可以通過在代碼示例中用np.sum(m)
代替np.sum(m[1:, 1:])
來完成。 這是使用 NumPy 的切片符號的示例,它類似於 Matlab 的切片符號(按設計)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.