1

我有以下形状的 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)。为什么会出现这种歧义?我应该如何解释结果?

4

0 回答 0