我有一种情况,我有一个浮点数的 ndarray X,比如说 100x10,我想查看第一列的一些条件并创建一个形状为 100x1 的布尔 ndarray B。然后我想使用 B 作为 X 的索引来提取 True 所在的值。然而,对于 BI 中的每个 True 都想拉出 X 的整行。我认为这会自动工作,因为 B 将被广播为 100x10 形状。然而,它似乎并没有以这种方式工作。这是一个使用 2x2 和 2x1 ndarray 的示例。
a = np.array([True, False])
a.shape = (2,1)
b = np.array([1, 2, 3, 4])
b.shape = (2,2)
print(a)
print(b)
print(b[a])
这打印
[[True]
[False]]
[[ 1 2 ]
[ 3 4 ]]
[1]
我希望它打印出来[1 2]
。为什么广播不像我期望的那样工作?