簡體   English   中英

有沒有更快的方法來循環通過 numpy 矩陣

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM