Python中的np.mean()与np.average()NumPy?

标题说明了一切。

我注意到了

In [30]: np.mean([1, 2, 3]) Out[30]: 2.0 In [31]: np.average([1, 2, 3]) Out[31]: 2.0 

然而,应该有一些分歧,因为毕竟它们是两个不同的function。

他们之间有什么区别?

np.average采用可选的权重参数。 如果没有提供,它们是等同的。 看看源代码。

np.mean:

 try: mean = a.mean except AttributeError: return _wrapit(a, 'mean', axis, dtype, out) return mean(axis, dtype, out) 

np.average:

 ... if weights is None : avg = a.mean(axis) scl = avg.dtype.type(a.size/avg.size) else: #code that does weighted mean here if returned: #returned is another optional argument scl = np.multiply(avg, 0) + scl return avg, scl else: return avg ... 

np.mean总是计算一个算术平均值,并有一些额外的input和输出选项(例如,使用哪些数据types,放置结果的位置)。

如果提供了weights参数, np.average可以计算加权平均值。

还有一个重要的区别,你必须知道:

average不考虑口罩,所以计算整个数据集的平均值。

mean是考虑掩码,所以只计算平均值。

 g = [1,2,3,55,66,77] f = np.ma.masked_greater(g,5) np.average(f) Out: 34.0 np.mean(f) Out: 2.0 

在你的调用中,这两个函数是一样的。

average可以计算一个加权平均虽然。

文件链接: meanaverage