1. 程式人生 > 程式設計 >Python高階特性——詳解多維陣列切片(Slice)

Python高階特性——詳解多維陣列切片(Slice)

(1) 我們先用arange函式建立一個數組並改變其維度,使之變成一個三維陣列:

>>> a = np.arange(24).reshape(2,3,4)
>>> a
array([[[ 0,1,2,3],[ 4,5,6,7],[ 8,9,10,11]],[[12,13,14,15],[16,17,18,19],[20,21,22,23]]])

多維陣列a中有0~23的整數,共24個元素,是一個2×3×4的三維陣列。我們可以形象地把它看做一個兩層樓建築,每層樓有12個房間,並排列成3行4列。

(2) 我們可以用三維座標來選定任意一個房間,即樓層、行號和列號。例如,選定第1層樓、第1行、第1列的房間,可以這樣表示:

>>> a[0,0]
0

(3) 如果我們不關心樓層,也就是說要選取所有樓層的第1行、第1列的房間,那麼可以將第1個下標用英文標點的冒號:來代替:

>>> a[:,0]
array([ 0,12])

選取第1層樓的所有房間:

>>> a[0]
array([[ 0,11]])

或者我們可以這樣寫:

>>> a[0,:,:]
array([[ 0,11]])

多個冒號可以用一個省略號(…)來代替,因此上面的程式碼等價於:

>>> a[0,...]
array([[ 0,11]])

進而可以選取第1層樓、第2排的所有房間:

>>> a[0,1]
array([4,7])

以上這篇Python高階特性——詳解多維陣列切片(Slice)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。