假设我已经定义了一个 3x3x3 的 numpy 数组,其代码如下:
现在,我可以使用
例如,假设我有
x = numpy.arange(27).reshape((3, 3, 3))
现在,我可以使用
x[:, 0, 1]
获取包含每个3x3子数组的(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
具有多少维的情况。