您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – Numpy蒙面数组 – 表示缺少值

5b51 2022/1/14 8:21:17 python 字数 2030 阅读 499 来源 www.jb51.cc/python

import numpy as np import numpy.ma as ma '''This operates as expected with one value masked''' a = [0., 1., 1.e20, 9.] error_value = 1.e20 b = ma.masked_values(a, error_value) pri

概述

import numpy as np
import numpy.ma as ma

"""This operates as expected with one value masked"""
a = [0.,1.,1.e20,9.]
error_value = 1.e20
b = ma.masked_values(a,error_value)
print b

"""This does not,all values are masked """
d = [0.,'NA',9.]
error_value = 'NA'
e = ma.masked_values(d,error_value)
print e

如何使用’nan’,’NA’,’None’或类似的值来表示缺少数据?

In [149]: f = StringIO('0.0,1.0,NA,9.0')

In [150]: a = np.genfromtxt(f,delimiter=',',missing_values='NA',usemask=True)

In [151]: a
Out[151]:
masked_array(data = [0.0 1.0 -- 9.0],mask = [False False  True False],fill_value = 1e+20)

我认为你的例子中的问题是你用来初始化numpy数组的python列表有异构类型(浮点数和字符串).这些值被强制转换为numpy数组中的字符串,但masked_values函数使用浮点相等而产生奇怪的结果.

这是通过创建具有对象dtype的数组来克服此问题的一种方法

In [152]: d = np.array([0.,9.],dtype=object)

In [153]: e = ma.masked_values(d,'NA')

In [154]: e
Out[154]:
masked_array(data = [0.0 1.0 -- 9.0],fill_value = ?)

您可能更喜欢第一个解决方案,因为结果具有float dtype.

总结

以上是编程之家为你收集整理的python – Numpy蒙面数组 – 表示缺少值全部内容,希望文章能够帮你解决python – Numpy蒙面数组 – 表示缺少值所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶