numpy阵列掩蔽的差异

2021-10-17 13:35:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有三个numpy数组,一个是源数组,一个是目标数组,一个是掩码数组。我只想在掩码等于1的地方用源中相同的值替换目标中的值。你知道吗

我的初衷是:

import numpy as np
destination = np.arange(9).reshape((3,3))
source = np.ones((3,3))
mask = np.zeros((3,3)).astype(np.uint8)
mask[1,1]=1

destination[mask] = source[mask]

这让我觉得destination

[[1, 1, 1],
 [1, 1, 1],
 [6, 7, 8]]

但我希望是这样

[[0, 1, 2],
 [3, 1, 5],
 [6, 7, 8]].

当我得到正确的结果时

destination[mask==1] = source[mask==1].

我的问题是:为什么这两个命令不相同,或者第一个命令做什么?你知道吗