Python高階特性——詳解多維陣列切片(Slice)
阿新 • • 發佈:2020-01-09
(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)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。