Python jupyter 中的布尔数组混淆 IDE

Python boolean arrays confusion in jupyter IDE

我是布尔数组的新手,发现这些语句令人困惑

import numpy as np

a = np.arange(5)

数组a的输出是:array([0, 1, 2, 3, 4]) 但是当我写下这个

b = a[True, True, False, False, False]

并使用

打印数组 b
print(b)

输出是:

[]

据我了解,我想将一些元素从数组a转移到数组b,但为什么b是空的? 这段代码发生了什么?

尝试嵌套括号:

a = np.arange(5)
b = a[[True, True, False, False, False]]
print(b)

输出:

[0 1]

您可以使用 numpy 中的 np.where(),如下所示:

import numpy as np

a = np.arange(5,10)

print(a)

b = a[np.where([True, True, False, False, False])]

print(b)

输出:

[5 6 7 8 9]
[5, 6]