首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python NumPy中的np.mean()与np.average()?

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

Stack Overflow用户
提问于 2013-11-19 01:43:31
回答 5查看 180.2K关注 0票数 225

我注意到

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

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

但是,应该有一些区别,因为它们毕竟是两个不同的功能。

它们之间有什么区别?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-11-19 01:51:48

np.average接受一个可选的权重参数。如果没有提供,则它们是等效的。看一下源代码:MeanAverage

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
...
票数 206
EN

Stack Overflow用户

发布于 2013-11-19 01:50:46

np.mean总是计算算术平均值,并且有一些额外的输入和输出选项(例如,使用什么数据类型,将结果放在哪里)。

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

票数 38
EN

Stack Overflow用户

发布于 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
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20054243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档