我有一个这种形状的多维数组:
(2, 200, 2, 3, 3, 114)
我想使用以下命令从中提取一组特定的值:
pab[0][:][0][0][0][i]
所以基本上我需要在第二个维度上迭代每个值来修复第一、第三、第四和第五个值。最后一个维度在循环中。
但是,我的切片和想要在第二维上提取的方式似乎无法正常工作。经过一番调查,我发现形状并没有像预期的那样改变。看来我没有正确理解它:
>>> pab.shape
(2, 200, 2, 3, 3, 114)
>>> pab[0].shape
(200, 2, 3, 3, 114)
>>> pab[0][:].shape
(200, 2, 3, 3, 114)
>>> pab[0][:][0].shape
(2, 3, 3, 114) # I would have expected to see (200, 3, 3, 114)
>>> pab[0][:][0][0].shape
(3, 3, 114)
我发现一些关于多维切片的文章,但没有一篇文章解释了这种行为,或者我误解了它们。
如果有人可以解释为什么数组的形状会如图所示而不是预期的那样发生变化,(200, 3, 3, 114)
以及正确的方法是什么,我将不胜感激!最后我试图得到一个形状数组(200, )