Python學習筆記——切片

1.什麼是切片(slice)?

切片就是提供一種途徑幫助我們在list或tuple或字符串(字符串可以看做是list)中進行一定範圍的索引。

比如:L=[1,2,3,4,5]

我們需要前三個數

L[0:3]

>>>[1,2,3]——注意:經過切片處理的結果仍然是原類型,儘管你有時候只想取一個數,這個數也是list類型

L[0]

>>>1——在這裏,不用切片,單個索引,則結果爲int類型

如圖:

 

2.切片有什麼用?

很多朋友可能會疑問,上述那些一定範圍的索引,我用循環也可以實現啊,是的,的確可以實現,但是哪個方便一點呢?

 

NOTE:

A.上面的list L,如果用L[ : ],裏面單單是一個冒號,則算是引用整個list

B.而用切片我們只需要把握規律即可,也就是冒號“ :”左邊是起始位置,冒號右邊是結束位置,但並不包括結束位置的元素,結束位置永遠比起始位置大——此情況只適用於只有一個冒號,如果起始位置處爲空,則起始位置爲0,如果結束位置爲空,那麼結束位置爲最後一位

C.如果出現兩個冒號如:L[0:3:2]——意思是,從0開始取數,每隔兩個取一個數,直到位置爲3爲止,如圖:

3.numpy中多維數組的切片:

如果碰到arr[ : , : ]這樣的形式,又怎麼解釋?

很簡單,這是多維數組的切片,例如:

第一個冒號取行,第二個冒號取列,至於步長這些,和我們之前提到的一致,再加多個冒號即可。

再比如,我們要取第一行,我們可以這樣:(這兩種方式均可)

note:我們需要注意一下格式

取行數據

arr[i, :] #取第i行數據 arr[i:j, :] #取第i行到第j行的數據

取列數據(注意數據格式)

arr[:,0] # 取第0列的數據,以行的形式返回的 out: array([0, 4, 8]) arr[:,:1] # 取第0列的數據,以列的形式返回的 out: array([[0], [4], [8]])

 

 

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