假设我已经定义与numpy的多维数组切片
x = numpy.arange(27).reshape((3, 3, 3))
现在3x3x3的numpy的阵列,我可以得到含有各3×3子阵列的(0,1)元素的数组与x[:, 0, 1]
,它返回array([ 1, 10, 19])
。如果我有一个元组(m,n)并且想要检索存储在元组中的每个子数组((0,1))的(m,n)元素,该怎么办?例如,假设我有t = (0, 1)
。我尝试了x[:, t]
,但它没有正确的行为 - 它返回每个子阵列的行0和1。我找到的最简单的解决方案是
x.transpose()[tuple(reversed(t))].transpose()
但我确定必须有更好的方法。当然,在这种情况下,我可以做x[:, t[0], t[1]]
,但这不能推广到我不知道有多少维数x
和t
具有的情况。
酷,谢谢帮助(你也是,wim)。我在[scipy](http://www.scipy.org/Numpy_Example_List)找到了更多s_和slice的示例。我想我以前看过那个清单,但没有看到任何看起来相关的东西。 – James