我有以下形状的 3D 数组
In [159]: arr = np.arange(60).reshape(3, 4, 5)
我正在尝试进行高级索引以提取子数组,例如:
# behaves as expected
In [160]: arr[[1, 2], :, 1].shape
Out[160]: (2, 4)
在以下情况下,我希望结果是 shape (4, 2)
。
# unintended behaviour
In [161]: arr[1, :, [1, 2]].shape
Out[161]: (2, 4)
由于我们确实__getitem__
沿第一个维度调用该维度将消失。沿着第二个轴,我们对所有内容进行切片,使其应该是4
,沿着最后一个轴,它应该是2
。所以,我们应该得到 shape 的结果子数组,(4, 2)
但我们得到的是 shape (2, 4)
。为什么会出现这种歧义?我应该如何解释结果?