为什么加权平均会得到意想不到的结果?
Why the weighted average get unintended result?
我们知道 weighted average
公式是:
所以,当我使用 numpy 时:
a = np.array([1,2,3,4])
wts = np.array([1,2,3,4])
print(np.average(a, weights=wts))
应该是:
np.sum([1*1, 2*2, 3*3, 4*4]) / 4 # 7.5
但为什么得到 3.0
?
根据average
的文档,平均值是
avg = sum(a * weights) / sum(weights)
如果你想除以权重的数量而不是总和,你可以简单地做
a = np.array([1,2,3,4])
wts = np.array([1,2,3,4])
np.dot(a,wts) / wts.shape[0]
我们知道 weighted average
公式是:
所以,当我使用 numpy 时:
a = np.array([1,2,3,4])
wts = np.array([1,2,3,4])
print(np.average(a, weights=wts))
应该是:
np.sum([1*1, 2*2, 3*3, 4*4]) / 4 # 7.5
但为什么得到 3.0
?
根据average
的文档,平均值是
avg = sum(a * weights) / sum(weights)
如果你想除以权重的数量而不是总和,你可以简单地做
a = np.array([1,2,3,4])
wts = np.array([1,2,3,4])
np.dot(a,wts) / wts.shape[0]