删除numpy数组中的掩码元素

时间:2017-07-13 14:55:34

标签: python arrays list numpy

我有一些包含蒙版元素的数组(来自Numpy.MaskedArray),例如

data = [0,1,masked,3,masked,5,...]

掩码不遵循常规模式。

我想遍历数组并简单地删除所有被屏蔽的元素以结束:

data = [0,1,3,5,...]

我尝试了一个循环:

for i in xrange(len(data)):
    if np.ma.is_masked(data[i]):
        data.pop(i)

但我收到错误:local variable 'data' referenced before assignment

我是否必须创建一个新数组并添加未屏蔽的元素?或者是否有MaskedArray函数可以自动执行此操作?我看过文档,但对我来说并不明显。

谢谢!

2 个答案:

答案 0 :(得分:8)

data.compressed()是您正在寻找的功能

答案 1 :(得分:4)

使用掩码按位反转 ~

data = data[~data.mask]