在Numpy中, mean() 和 average()都有取平均数的意思, 在不考虑加权平均的前提下,两者的输出是一样的 , 如下面的Code :
a = np.array([1,2,3,4])
print('output of mean :', np.mean(a))
print('output of average :', np.average(a))
输出结果如下:
output of mean : 2.5
output of average : 2.5
考虑权重的情况下, average() 还可以计算一维的加权平均值, 以下面的code为例:
a = np.array([1,2,3,4])
w = np.array([4,3,2,1])
print('output of average :', np.average(a, weights=w))
其输出结果为:
output of average : 2.0
那么这个2.0是怎么得到的, 具体的加权平均是怎么计算的,解析如下:
np.average(a, weights=w) = a[0] * w[0] / w.sum() +
a[1] * w[1] / w.sum() +
a[2] * w[2] / w.sum() +
a[3] * w[3] / w.sum()
w.sum() = w[0] + w[1] + w[2] + w[3[ = 10
np.average(a, weights=w) = 1 * 4 / 10 + 2* 3 / 10 + 3* 2/ 10 + 4* 1 / 10
= 0.4 + 0.6 + 0.6 + 0.4 = 2.0