在python中使用另一个掩码修改布尔掩码

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

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]

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

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

最佳答案 您的代码没有任何问题.我试过了,它产生了正确的结果(这与你显示的结果不同).

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

mask1 &= ~mask2
点赞