在python&numpy中切片(slice)


在python&numpy中切片(slice)

上文說到了,詞頻的統計在數據挖掘中使用的頻率很高,而切片的操作同樣是如此。在從文本文件或數據庫中讀取數據后,需要對數據進行預處理的操作。此時就需要對數據進行變換,切片,來生成自己需要的數據形式。

對於一維數組來說,python原生的list和numpy的array的切片操作都是相同的。無非是記住一個規則arr_name[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]])

參考文獻


免責聲明!

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



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