[python隨筆]python數組切片操作


python的數組切片操作很強大,但有些細節老是忘,故寫一點東西記錄下來。

在python&numpy中切片(slice)

對於一維數組來說,python的list和numpy的array切片操作都是相似的。無非記住

arr[start:end:step]

即可

下面是幾個特殊的例子

  • [:]表示復制源列表
  • 負的index表示,從后往前。-1表示最后一個元素。

相對於一維數組而言,二維(多維)數組用的會更多。一般語法是arr_name[行操作, 列操作]
先隨機產生一個3*4的數組

in:arr = np.arange(12).reshape((3, 4))
out:
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

取行數據

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

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

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

取一個數據塊

取第一維的索引1到索引2之間的元素,也就是第二行
取第二維的索引1到索引3之間的元素,也就是第二列和第三列

in:arr[1:2, 1:3] 
 
out: 
array([[5, 6]])

取第一維的全部
按步長為2取第二維的索引0到末尾之間的元素,也就是第一列和第三列

in: arr[:, ::2]
 
out: 
array([[ 0,  2],
       [ 4,  6],
       [ 8, 10]])

補充:數組里的-1代表倒序,而reshape里的-1代表未知!!!!!

一個數組a=[0,1,2,3,4],a[-1]表示數組中最后一位,a[:-1]表示從第0位開始直到最后一位,a[::-1]表示倒序,從最后一位到第0位。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM