1. 程式人生 > >python中numpy的陣列切片

python中numpy的陣列切片

一.

一維陣列:在numpy的array中切片的操作與python列表的切片操作是相同的,記住索引規則即 a[start,end,step]

二.

二維陣列:索引規則為a[行,列]。 例子如下:

先初始化一個二維array

import numpy as np
a = np.arange(20).reshape((4,5))
print(a)
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]]

1.取行資料

a[i, : ] #取第i行資料   a[i : j, :] #取第i行到第j行的資料(不包括結束行)

a[3,:]
array([15, 16, 17, 18, 19])
a[0:2,]
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])

2.取列資料

a[ : ,j] #取第j列資料  a[:, i : j] #取第i列到第j列的資料(不包括結束列)

a[:,4]
array([ 4,  9, 14, 19])
a[:,2:4]
array([[ 2,  3],
       [ 7,  8],
       [12, 13],
       [17, 18]])

3.取一個數據塊

a[i1: j1 , i2: j2]  #取第i1行到第j1行,取第i2列到第j2列

a[0:3,2:4]
array([[ 2,  3],
       [ 7,  8],
       [12, 13]])

4.按步長為k的索引

a[:, i : j: k]  #取所有行,i為開始列,j為結束列,k為步長

a[:,0:4:2]
array([[ 0,  2],
       [ 5,  7],
       [10, 12],
       [15, 17]])

三.

多維陣列:與二維陣列類似,可以對比二維陣列的操作