高级索引/子集化

问题描述 投票:0回答:1

使用 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
匹配。
    

python arrays numpy numpy-ndarray
1个回答
4
投票

b

首先,
c = np.copy(a) c[a] = b

是通过复制

c
创建的。现在,
a
(布尔数组)用于选择
a
的元素,其中
c
为 True。
由于某个值和 

a

之间的布尔值

and
是值本身,因此数组
True
and
b
的那些元素之间的布尔值
a
就是数组
True
本身。
最后,因为

b

True
元素数量与
a
的长度相同,所以可以对
b
进行赋值。
    

© www.soinside.com 2019 - 2024. All rights reserved.