4

我想根据某些条件修改现有掩码以在我的代码中进一步使用:

import pylab
mask1 = arange(10) > 5;
# [False False False False False False  True  True  True  True]
mask2 = arange(10) >8;
# [False False False False False False False False False  True]
mask1[mask2] = False
print mask1
[ True False False False False False  True  True  True  True]

如您所见,它是第一个被修改的元素,而不是预期的最后一个元素。这样做的正确方法是什么?

编辑:对不起,我的错,因为你们中的一些人指出代码是正确的,我不知道那里发生了什么,我将删除这个问题。

4

2 回答 2

2

你的代码没有问题。我已经尝试过了,它产生了正确的结果(与您显示的结果不同)。

这是做同样事情的另一种方法:

mask1 &= ~mask2
于 2012-05-25T15:06:08.067 回答
0

在我看来,您可以像这样构造掩码:

mask1= logical_and(arange(10)>5,arange(10)<=8)

或者更简单:

mask1 = (arange(10)>5) & (arange(10)<=8)
于 2012-05-25T15:06:29.227 回答