关于python无效值存在时np.nanmean和mean的区别

用了好多次了,记一下

如果要计算一个数组中存在无效值的统计量如mean,numpy提供了nanmean对数据中出现np.nan进行处理。但有时使用numpy.ma.masked_where将该值masked了,这时候mean和nanmean都可以得到相同的想要的结果,下面是代码

a=numpy.array([0.0,1,5,999])
b=numpy.ma.masked_equal(a,999)
c=b.filled(numpy.nan)

numpy.mean(a) #(0+1+5+999)/4
251.25

numpy.mean(b) #(0+1+5)/3
numpy.nanmean(b) #(0+1+5)/3 
2.0

numpy.mean(c) #参与了np.nan所以没有忽略nan的话计算出现错误
nan

numpy.nanmean(c) #(0+1+5)/3 
2.0

可以看到,只有使用np.nan填充了,计算统计量时需要考虑numpy.nan函数,如果使用mask的话,则可以随意使用两个函数,结果都是对的

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值