使用 NumPy,给定
a
和一个较小的布尔数组 b
:
a = np.array([False, True, True, False, True])
b = np.array([False, True, False])
如何获得结果
c
?
c = np.array([False, False, True, False, False])
即对
b
的 a
部分进行布尔运算,得到与 True
形状相同的数组 c
,因此 a
中 True
的元素数量和数组长度a
匹配。b
首先,
c = np.copy(a)
c[a] = b
是通过复制
c
创建的。现在,a
(布尔数组)用于选择 a
的元素,其中 c
为 True。由于某个值和 a
之间的布尔值
and
是值本身,因此数组 True
和 and
中 b
的那些元素之间的布尔值 a
就是数组 True
本身。 最后,因为b
的
True
元素数量与a
的长度相同,所以可以对b
进行赋值。