我目前有一个形状(3, 890, 1100, 2)
的numpy数组。我想提取位于(0, 0-890, 0-1100, 0)
位置的二维数组,因此当索引890x1100
和1
为{时,我将留下值的4
2d数组{1}}。
换句话说,我想访问数组,好像参数的顺序是0
,并执行以下操作:
(3, 2, 890, 1100)
我知道我可以用循环来做到这一点,但是想知道是否有更多的“python-esque”方法来做它。
答案 0 :(得分:4)
是的,有一种更为pythonic的索引numpy数组的方法。有关详细信息,请查看documentation。
在您的特定情况下,您可以按如下方式获得所需的结果。
# Generate some data
data = np.random.normal(size=(3, 890, 1100, 2))
# Slice the data
subset = data[0, :, :, 0]
:
表示"沿此轴的所有元素"。
答案 1 :(得分:1)
如果您想使用NewArray[0][0]
访问数据,还可以使用NewArray=np.rollaxis(OriginalArray,-1)
然后
>>> NewArray.shape
(2,3,890,1100)