在 2D 数组的 numpy 中找到 2 个掩码之间的剩余掩码

Find the remainder mask between 2 masks in numpy for 2D array

假设我有一个二维数组:

main = np.random.random((300, 200))

我为这个数组准备了两个掩码: 例如,

mask1 = list((np.random.randint((100), size = 50), np.random.randint((200), size = 50)))
mask2 = list((np.random.randint((20), size = 10), np.random.randint((20), size = 10)))

我想替换二维数组中的主要值,例如:

main[mask1]=2
main[mask2]=1

效果很好,但我还想将所有不是掩码 1 和掩码 2 的索引替换为零。

我想到了类似的事情:

main[~mask1] & main[~mask2] = 0

这让我无处可去,所以非常感谢您的帮助!

我认为根据您的要求,更好的方法是构造一个与 main 形状相同的零填充数组,并使用 mask1 和 [=15 分配 12 =]

main = np.zeros(main.shape)
main[mask1]=2
main[mask2]=1