2017-07-13 111 views
2

我有一些数组包含蒙面元素(来自Numpy.MaskedArray),例如,在numpy数组中删除蒙面元素

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功能,可以自动做到这一点?我查看了文档,但对我来说并不明显。

谢谢!

+0

什么是真正面具?你能提供一个[mcve]吗? –

+0

您的错误与您的问题无关 – Eric

+0

[x for isinstance(x,(int))] – JejeBelfort

回答

4

随着面具逐位反演~

data = data[~data.mask] 
+0

我得到的错误:'AttributeError:'list'object has no attribute 'mask'' –

+0

@RichardHall,但你写道,你已经掩盖numpy阵列 – RomanPerekhrest

+0

是的,我不知道为什么我得到那个错误。 –

6

data.compressed()是函数你要找的

+0

这不起作用,我得到'AttributeError:'列表'对象没有属性'压缩'错误 –