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