#### 拼接
Numpy中提供了concatenate,append, stack類(包括hsatck、vstack、dstack、row_stack、column_stack),r_和c_等類和函數用于數組拼接的操作。各種函數的特點和區別如下表:
在我們學習拼接之前我們先了解一些軸和維度。
上一篇我們提到numpy中的ndim和shape來分別查看維度,以及在對應維度上的長度的。而其中的axis表示的是軸
##### concatenate函數
```
concatenate(tuple, axis=0, out=None)
"""
參數說明:
tuple:對需要合并的數組用元組的形式給出
axis: 沿指定的軸進行拼接,默認0,即第一個軸
"""
```
比如我們有兩個數組:
所以是對兩個數組進行了axis=0軸的合并,如果將axis換成1則變成:
##### append函數
函數的說明如下:
```
append(arr, values, axis=None)
"""
參數說明:
arr:類似array的數據
values: 類似array的數據
axis:進行append操作的axis的方向,默認無
"""
```
代碼示例:
大家發現,若axis為None,則先將arr和values進行ravel扁平化,再拼接;如果指定axis=0表示x軸的拼接,而如果axis=1表示y軸的拼接。
##### stack函數
函數的說明如下:
```
stack(arrays, axis=0, out=None)
"""
沿著指定的axis對arrays(每個array的shape必須一樣)進行拼接,返回值的維度比原arrays的維度高1
axis:默認為0,即第一個軸,若為-1即為第二個軸
"""
```
代碼演示:(仍然使用上面的data1和data2)
可以發現如果axis=1,就是x軸的依次進行組合,如果是axis=-1就是兩個數組的列進行組合。 當然如果想直接進行行或者列的拼接也可以使用:hstack、vstack分別表示只進行行的拼接,或者列的拼接,類似上面的axis=1或axis=-1的情況。
總結:
增加行(對行進行拼接)的方法有
```
np.concatenate((ar1, ar2),axis=0)
np.append(ar1, ar2, axis=0)
np.vstack((ar1,ar2))
```
增加列(對列進行拼接)的方法有:
```
np.concatenate((ar1, ar2),axis=1)
np.append(ar1, ar2, axis=1)
np.hstack((ar1,ar2))
```
內容比較多,大家要多多練習哦!
更多關于“Python培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業需求,更科學更嚴謹,每年培養泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。
注:本文部分文字和圖片來源于網絡,如有侵權,請聯系刪除。版權歸原作者所有!