NumPy mean() 和 average()的区别

1,808 阅读1分钟

你可以使用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中计算其他的平均值:

如何在Python中计算移动平均数
如何在Python中计算累积平均数