你可以使用np.mean()或np.average()函数来计算 Python 中一个数组的平均值。
下面是这两个函数之间的微妙区别:
- np.mean 总是计算算术平均值
- np.average 有一个可选的weights参数,可以用来计算加权平均值
下面的例子展示了如何在实践中使用每个函数。
例1:使用不带权重的np.mean()和np.average()
假设我们在Python中有下面这个包含七个值的数组:
#create array of values
data = [1, 4, 5, 7, 8, 8, 10]
我们可以使用**np.mean()和np.average()**来计算这个数组的平均数值:
import numpy as np
#calculate average value of array
np.mean(data)
6.142857142857143
#calcualte average value of array
np.average(data)
6.142857142857143
这两个函数的返回值完全相同。
两个函数都使用了以下公式来计算平均值。
Average = (1 + 4 + 5 + 7 + 8 + 8 + 10) / 7 =6.142857...
例2:使用带有权重的np.average()
再一次假设我们在Python中拥有以下包含七个值的数组:
#create array of values
data = [1, 4, 5, 7, 8, 8, 10]
我们可以使用np.average()来计算这个数组的加权平均数,方法是给weights参数提供一个数值列表:
import numpy as np
#calculate weighted average of array
np.average(data, weights=(.1, .2, .4, .05, .05, .1, .1))
5.45
加权平均结果是5.45。
下面是np.average()用来计算这个值的公式。
加权平均数=1*.1+4*.2+5*.4+7*.05+8*.05+8*.1+10*.1=5.45。
注意,我们不能使用np.mean()来进行这个计算,因为该函数没有权重参数。
关于np.mean()和np.average()函数的完整解释,请参考NumPy文档。
其他资源
下面的教程解释了如何在Python中计算其他的平均值: