我知道boolean数组可以用作numpy数组中的掩码。但是当我在numpy数组中使用单个值作为掩码时,奇怪的事情发生了:
x = [1,2,3,4,5]
result = np.array(x)[True]
print(result)
[2019 - 04 - 15][2019 - 04 - 15][2019 - 04 - 15][2019 - 04][2019 - 04 - 15][2019 - 04][2019 - 04 - 15][2019 - 04 - 05][2019 - 04 - 05][2019 - 04 - 05][2019 - 04 - 05][2019 - 04 - 05][2019 - 04 - 05][2019 - 04 - 05][2019 - 05][2019 - 05][2019 - 05][2019 - 05][2019 - 05][2019 - 05][2019 - 05]2019 - 05][2019 - 05][2019 - 0为什么会有两个括号?Python在这种情况下会做什么?
1条答案
按热度按时间t40tm48m1#
我认为这是由于广播,因为你的输入数组没有正确的形状。
要执行真实的的布尔索引,你需要传递一个list:
显然,对于
[[True]]
,这将不起作用,因为形状不匹配:当你运行
np.array(x)[True]
时,这或多或少相当于: