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