删除numpy数组中的蒙版元素 [英] Deleting masked elements in numpy array

查看:135
本文介绍了删除numpy数组中的蒙版元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have some arrays that contain masked elements (from Numpy.MaskedArray), e.g.

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

蒙版不遵循常规图案的地方.

Where the mask doesn't follow a regular pattern.

我想遍历数组,并简单地删除所有被掩码以结尾的元素:

I want to iterate through the array and simply delete all elements that are masked to end up with:

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函数?我看过文档,但对我来说并不明显.

Do I have to create a new array and add the unmasked elements? Or is there a MaskedArray function that can automatically do this? I've had a look at the documentation but it's not obvious to me.

谢谢!

推荐答案

带掩码按位反转 ~:

data = data[~data.mask]

这篇关于删除numpy数组中的蒙版元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆