我注意到
In [30]: np.mean([1, 2, 3])
Out[30]: 2.0
In [31]: np.average([1, 2, 3])
Out[31]: 2.0
但是,应该有一些区别,因为它们毕竟是两个不同的功能。
它们之间有什么区别?
发布于 2013-11-19 01:51:48
np.average接受一个可选的权重参数。如果没有提供,则它们是等效的。看一下源代码:Mean、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
...
发布于 2013-11-19 01:50:46
np.mean
总是计算算术平均值,并且有一些额外的输入和输出选项(例如,使用什么数据类型,将结果放在哪里)。
如果提供了weights
参数,则np.average
可以计算加权平均值。
发布于 2016-08-05 15:40:45
在某些版本的numpy中,您必须意识到另一个重要的区别:
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
https://stackoverflow.com/questions/20054243
复制相似问题