【发布时间】:2017-09-20 22:35:54
【问题描述】:
我有一个 3-D 数组。当我对其进行二维切片时,结果取决于它是使用列表还是切片进行索引。在第一种情况下,结果被转置。在manual 中没有发现这种行为。
>>> import numpy as np
>>> x = np.array([[[1,1,1],[2,2,2]], [[3,3,3],[4,4,4]]])
>>> x
array([[[1, 1, 1],
[2, 2, 2]],
[[3, 3, 3],
[4, 4, 4]]])
>>> x[0,:,[0,1]]
array([[1, 2],
[1, 2]])
>>> x[0,:,slice(2)]
array([[1, 1],
[2, 2]])
>>>
有人能指出原因吗?
【问题讨论】:
-
奇怪的是
a[0][:, [0, 1]]给出了与使用 slice() 相同的结果。 -
谢谢你,P. Camilleri。二维阵列的行为完全可以预测。问题在于三个维度,甚至更多维度。
-
stackoverflow.com/questions/27297445/… - 早期尝试解释混合索引。该主题之前出现过,但诀窍是找到一个好的搜索词。
标签: python numpy multidimensional-array slice