例如,給出下一個直方圖和 bin:
import numpy as np
hist = np.array([1,1,2,1,2])
bins = np.array([0,1,2,3,4 ])
?計算方差的最有效方法是什么?一種方法是重新創建陣列并將其傳遞給np.var函式:
import numpy as np
np.var(np.array([0, 1, 2, 2, 3, 4, 4]))
但是,我認為這不是很有效。
uj5u.com熱心網友回復:
所以你可以重寫公式:
counts = hist.sum()
mean = (hist*bins).sum() / counts
sum_squares = (bins**2 * hist).sum()
var = sum_squares/counts - mean ** 2
# test
np.isclose(var, np.var(np.repeat(bins, hist)))
輸出True。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/338747.html
下一篇:如何通過二維陣列索引使用?
