2016-01-13 33 views
1

我目前有一個形狀爲(3, 890, 1100, 2)的numpy數組。我想提取在位置(0, 0-890, 0-1100, 0)的二維數組,因此當索引140時,我將留下890x1100的二維數組值。如何從4D數組中提取基於第一個和最後一個索引的2D陣列

換句話說,我想訪問數組彷彿參數爲順序(3, 2, 890, 1100)和做類似:

newArray = array[0][0] 

我明白,我可以循環做到這一點,但不知道是否有一種更「蟒蛇式」的方式來做到這一點。

回答

4

是的,還有一種python的numpy數組索引方式。詳情請看documentation

在你的具體情況下,你可以達到預期的結果如下。

# Generate some data 
data = np.random.normal(size=(3, 890, 1100, 2)) 
# Slice the data 
subset = data[0, :, :, 0] 

:表示「沿着該軸的所有元素」。

1

如果你想與NewArray[0][0]訪問你的數據,你還可以重新排列與NewArray=np.rollaxis(OriginalArray,-1)

然後

>>> NewArray.shape 
(2,3,890,1100) 
相關問題