Numpy的切片索引

通過索引得到的是原數組降低維度的內容,通過切片得到的是原數組維度的部分內容。

arr2d = np.array([[1,2,3],[4,5,6]]) 這是一個Numpy的二維數組

利用索引,獲得arr2d中的內容

arr2d[0]是[1,2,3],是一個一維數組,比arr2d二維數組降低了一個維度

arr2d[1]是[4,5,6],是一個一維數組,比arr2d二維數組降低了一個維度

arr2d[0,1],獲得2。可以將其看爲兩步,首先是arr2d[0]獲得降低一個維度的一維數組[1,2,3],然後再對一維數組[1,2,3]進行索引操作,得到一個數字2,從一維降到沒有維度概念了,一個標量。

 

利用切片,獲得arr2d中的內容:

切片總是按照軸進行的,對於二維數組來說,先切0軸,再切1軸:

0軸是豎着的,所以切的時候只能“橫着切”,1軸是橫着的,所以切的時候只能“豎着切”。

arr2d[1:] 對arr2d橫向切出[[4,5,6]],是一個二維數組,與arr2d的維度一致

arr2d[1: , :2] 是一個連續切片操作,先橫着切0軸,切出[[4,5,6]],再豎着切1軸,切出[[4,5]],維度始終保持不變。

 

如果想得到降維的切片怎麼辦呢?就需要使用切片索引。

切片索引的本質還是切片,看上去就像混合使用了切片和索引,達到獲得降維切片的目的。

arr2d[1,:2] 切片索引還是按照切片的方式來操作,第一次橫切出降維的[4,5,6],再在一維數組上切出保持維度的[4,5]

arr2d[:1,2] 第一次橫切出不降維的[[1,2,3]],第二次豎切出降維的[3]

arr2d[:2,1] 第一次橫切出部將爲的[[1,2,3],[4,5,6]],第二次豎切出降維的[2,5]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章