好的,这里有个极端的菜鸟问题。在我的程序中,我生成了一个2D numpy数组,其中一些条目缺失(不是“nan”类型的不可分类,但是“None”类型或NoneType)。我想为这些条目设置一个掩码,但我似乎在这样做时遇到了一些麻烦。通常,以掩蔽在,比方说,具有值2的所有条目,我愿意做在numpy数组中找到缺失值
A = np.ma.masked_where(A [A == 2],A)
在这种情况下,没有按无论我为第一个参数尝试什么,似乎都不起作用。思考?
好的,这里有个极端的菜鸟问题。在我的程序中,我生成了一个2D numpy数组,其中一些条目缺失(不是“nan”类型的不可分类,但是“None”类型或NoneType)。我想为这些条目设置一个掩码,但我似乎在这样做时遇到了一些麻烦。通常,以掩蔽在,比方说,具有值2的所有条目,我愿意做在numpy数组中找到缺失值
A = np.ma.masked_where(A [A == 2],A)
在这种情况下,没有按无论我为第一个参数尝试什么,似乎都不起作用。思考?
既然你有你的数组中--
项目,我想,这意味着他们已经被屏蔽:
>>> m = ma.masked_where([True, False]*5, arange(10))
>>> print m
[-- 1 -- 3 -- 5 -- 7 -- 9]
所以,我要说的是,你的条目已经被屏蔽,并且可以直接使用你的数组。
如果你想创建一个只包含非屏蔽值的数组,你可以做
>>> m[~m.mask]
[1 3 5 7]
其中m
是你屏蔽数组。
如果你想掩盖值的列表,你可以简单地选择其他值:
>>> m[m.mask]
[0 2 4 6 8]
注意,遗漏值是不无,但原始值,一般。实际上,一个整数数组不能包含None。
如果你想屏蔽值的索引,你可以这样做:
>>> numpy.nonzero(m.mask)
的numpy.nonzero()
的documentation描述了它的结果如何,请解释。
要查找numpy数组中的元素为None,可以使用numpy.equal。这里有一个例子:
import numpy as np
import MA
x = np.array([1, 2, None])
print np.equal(x, None)
# array([False, False, True], dtype=bool)
# to get a masked array
print MA.array(x, mask=np.equal(x,None))
# [1 ,2 ,-- ,]
好点。经过更多的调查,我发现你是对的。实际上这个问题的价值观似乎是我之前没有注意到的,实际上是“无”。 所以,现在我要改变这个问题到它应该是什么:你如何去找到“无”的价值观? A [A ==无]只是出于某种原因给出了A [0 ,:]。 – user391045 2010-07-16 18:23:36
我在答案中增加了更多信息:我希望你能找到你需要的东西! :) – EOL 2010-07-17 07:41:32
@ dave-schultz:如果您在上述评论中的重述是对问题的更清晰的陈述,那么如果您编辑了您的问题以反映此问题,这将会很有帮助。更多人会阅读你的问题,而不是你在这里的评论。 – tom10 2010-07-18 02:00:53