我想根据某些条件修改现有的掩码,以便在我的代码中进一步使用:
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]
如您所见,它是第一个被修改的元素,而不是预期的最后一个元素。这样做的正确方法是什么?
编辑:对不起我的坏,因为有些人指出代码是正确的,我不知道那里发生了什么,我只会删除这个问题。答案 0 :(得分:2)
您的代码没有任何问题。我试过了,它产生了正确的结果(这与你显示的结果不同)。
这是另一种做同样事情的方法:
mask1 &= ~mask2
答案 1 :(得分:0)
在我看来,你可以像这样构建面具:
mask1= logical_and(arange(10)>5,arange(10)<=8)
甚至更简单:
mask1 = (arange(10)>5) & (arange(10)<=8)