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]

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