我想我正确理解了 python/numpy 中数组的索引。但是今天遇到了一个问题,如下:
我有一个 6 维数组,例如A
和A.shape = (11,1,9,1,5,7)
。然后我使用索引如下:
B = A[:,0,0,0,[3,4,2],0]
和B.shape = (11,3)
预期;
C = A[:,0,0,0,[3,4,2],:]
和C.shape = (11,3,7)
预期;
但是当我说:
D = A[:,0,:,0,[3,4,2],0]
并且D.shape
应该(11,9,3)
如我所料,但是,python 返回了D.shape = (3, 11, 9)
.
我真的对 array 的形状感到困惑D
。
有没有人可以给我一个简短的解释?非常感谢!
A[:,0,:,0,[3,4,2],0]
使用“高级”列表创建索引,[3,4,2]
生成大小为 3 的维度。然后添加第 1 维和第 3 维,从而形成 (3,11,9) 形状。
这种行为有些争议,特别是当其他指数是标量时。当有两个索引列表时,文档中给出的理由更清楚。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句