我无法让numpy.ma
使用我的数据。我敢肯定我以前用它来掩盖空白值,但无法弄清楚如何。这是一段显示我遇到的问题的代码片段。
import numpy as np
import numpy.ma as ma
x = np.array([[0.0, 1.1, '', 2.2, ''],[3.3,'', 4.4, '', 5.5]])
for index, value in np.ndenumerate(x):
if value == '':
x[index] = None
x = ma.masked_values(x, None)
print x
打印:
[['0' '1' 'N' '2' 'N']
['3' 'N' '4' 'N' '5']]
我正在尝试做的是获取一个蒙版的浮动数组,其中隐藏了任何缺失值。最终的print
应该产生:
[[0.0 1.0 -- 2.0 --]
[3.0 -- 4.0 -- 5.0]]
答案 0 :(得分:2)
如果您使用NaN
替换了空字符串,则以下内容将起作用:
In [19]: x = np.array([[0.0, 1.1, np.nan, 2.2, np.nan],[3.3,np.nan, 4.4, np.nan, 5.5]])
In [20]: m = ma.masked_array(x, np.isnan(x))
In [21]: print(m)
[[0.0 1.1 -- 2.2 --]
[3.3 -- 4.4 -- 5.5]]
将''
更改为np.nan
的最简单的地方是在将它们放入np.array
之前。