删除numpy数组中的蒙版元素 [英] Deleting masked elements in numpy array
本文介绍了删除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屋!
查看全文