遍历 numpy.ma 数组,忽略掩码值
Posted
技术标签:
【中文标题】遍历 numpy.ma 数组,忽略掩码值【英文标题】:Iterate over numpy.ma array, ignoring masked values 【发布时间】:2015-08-20 15:57:18 【问题描述】:我想只迭代 np.ma.ndarray
中未屏蔽的值。
以下内容:
import numpy as np
a = np.ma.array([1, 2, 3], mask = [0, 1, 0])
for i in a:
print i
我明白了:
1
--
3
我想得到以下内容:
1
3
似乎np.nditer()
可能是要走的路,但我没有找到任何可能指定这一点的flags。我该怎么做?谢谢!
【问题讨论】:
掩码数组实际上是 2 个数组,一个是基数,一个是掩码。通用numpy
代码只适用于基础;这将包括nditer
。只有ma
方法/函数可以使用掩码。
这为我阐明了 nditer
arraymask
标志的意图。谢谢。
您也许可以将ma
data
和mask
分别传递给nditer
,使用此标志来识别后者。但我还没有探索过这个功能。
【参考方案1】:
你想使用a.compressed()
import numpy as np
a = np.ma.array([1, 2, 3], mask = [0, 1, 0])
for i in a.compressed():
print i
给出:
1
3
【讨论】:
有趣。去掉一些细节,a.compressed()
最终做了a._data.compress(~a._mask)
以上是关于遍历 numpy.ma 数组,忽略掩码值的主要内容,如果未能解决你的问题,请参考以下文章
Google 课堂课程的问题。courseWork.list “field_mask:未知字段掩码值:individual_students_options”