Jam*_*mes 8 python arrays indexing numpy multidimensional-array
假设我已经定义了一个3x3x3 numpy数组
x = numpy.arange(27).reshape((3, 3, 3))
Run Code Online (Sandbox Code Playgroud)
现在,我可以得到一个包含每个3x3子阵列的(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()
Run Code Online (Sandbox Code Playgroud)
但我相信一定有更好的方法.当然,在这种情况下,我能做到x[:, t[0], t[1]],但不能一概而论的地方,我不知道有多少尺寸的情况下x,并t有.