1. 程式人生 > >NumPy陣列基礎與計算(三):Numpy陣列切片

NumPy陣列基礎與計算(三):Numpy陣列切片

Numpy的語法與python語法的切片方法相同
獲取陣列切片的方法:
x[start:stop:step]
三個函式有預設值,三個引數預設值為start=0,stop=維度的大小,step=1。

1、一維子陣列

x=np.arange(10)
x
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
x[:5] #取x中的前5個元素
array([0,1,2,3,4])
x[4:6] #獲取中間的子陣列
arrary([4,5,6])
x[::2] #每隔一個元素
ararry([0,2,4,6,8])
x[1::2]#從1開始,每隔1個元素
array([1,3,5,7,9])
x[::-1] #所有元素逆序
arrary([9,8,7,6,5,4,3,2,1])

2、多維子陣列

多維切片採取同樣的方式處理,用冒號進行分隔。例如:

x2
array([[2, 6, 3],
       [8, 2, 4],
       [2, 6, 4]])
x2[:2,:3]#兩行,三列
array([[2, 6, 3],
       [8, 2, 4]])
x2[:3,::2]# 所有的行,列步長為2
array([[2, 3],
       [8, 4],
       [2, 4]]
x2[::-1,::-1] #多維陣列也存在逆序的情況
array([[4, 6, 2],
       [4, 2, 8],
       [3, 6, 2]])

3、獲取陣列的長和列

在資料工作中經常會去獲取陣列的單行和單列,我們可以將索引和切片組合起來實現這個功能,用一個冒號(:)表示空切片

print(x2[:,0]) #x2的第一列
[2 8 2]
print(x2[0,:]) #x2的第一行
[2 6 3]