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
可以计算一个加权平均虽然。
文件链接: mean
和average