連接數(shù)組常用的函數(shù)如下:
| 函數(shù) | 描述 |
| concatenate | 連接沿現(xiàn)有軸的數(shù)組序列 |
| stack | 沿著新的軸加入一系列數(shù)組。 |
| hstack | 水平堆疊序列中的數(shù)組(列方向) |
| vstack | 豎直堆疊序列中的數(shù)組(行方向) |
| dstack | 沿高度堆疊,該高度與深度相同 |
連接意味著將兩個或多個數(shù)組的內(nèi)容放在單個數(shù)組中。
在 SQL 中,我們基于鍵來連接表,而在 NumPy 中,我們按軸連接數(shù)組。
numpy.concatenate 函數(shù)用于沿指定軸連接相同形狀的兩個或多個數(shù)組,格式如下:
numpy.concatenate((a1, a2, ...), axis)
參數(shù)說明:
a1, a2, ...:相同類型的數(shù)組axis:沿著它連接數(shù)組的軸,默認(rèn)為 0
import numpy as np
a = np.array([[1,2,3,4,5],[3,4,5,6,7]])
print ('第一個數(shù)組:')
print (a)
print ('\n')
b = np.array([[5,6,7,8,9],[7,8,9,10,11]])
print ('第二個數(shù)組:')
print (b)
print ('\n')
# 兩個數(shù)組的維度相同
print ('沿軸 0 連接兩個數(shù)組:')
print (np.concatenate((a,b)))
print ('\n')
print ('沿軸 1 連接兩個數(shù)組:')
print (np.concatenate((a,b),axis = 1))輸出結(jié)果為:
[[ 5 6 7 8 9] [ 7 8 9 10 11]] 沿軸 0 連接兩個數(shù)組: [[ 1 2 3 4 5] [ 3 4 5 6 7] [ 5 6 7 8 9] [ 7 8 9 10 11]] 沿軸 1 連接兩個數(shù)組: [[ 1 2 3 4 5 5 6 7 8 9] [ 3 4 5 6 7 7 8 9 10 11]]
numpy.stack 函數(shù)用于沿新軸連接數(shù)組序列,格式如下:
numpy.stack(arrays, axis)
參數(shù)說明:
arrays相同形狀的數(shù)組序列axis:返回數(shù)組中的軸,輸入數(shù)組沿著它來堆疊
import numpy as np
a = np.array([[1,2,3,4,5],[3,4,5,6,7]])
print ('第一個數(shù)組:')
print (a)
print ('\n')
b = np.array([[5,6,7,8,9],[7,8,9,10,11]])
print ('第二個數(shù)組:')
print (b)
print ('\n')
print ('沿軸 0 堆疊兩個數(shù)組:')
print (np.stack((a,b),0))
print ('\n')
print ('沿軸 1 堆疊兩個數(shù)組:')
print (np.stack((a,b),1))輸出結(jié)果如下:
第一個數(shù)組: [[1 2 3 4 5] [3 4 5 6 7]] 第二個數(shù)組: [[ 5 6 7 8 9] [ 7 8 9 10 11]] 沿軸 0 堆疊兩個數(shù)組: [[[ 1 2 3 4 5] [ 3 4 5 6 7]] [[ 5 6 7 8 9] [ 7 8 9 10 11]]] 沿軸 1 堆疊兩個數(shù)組: [[[ 1 2 3 4 5] [ 5 6 7 8 9]] [[ 3 4 5 6 7] [ 7 8 9 10 11]]]
numpy.hstack 是 numpy.stack 函數(shù)的變體,它通過水平堆疊來生成數(shù)組。
import numpy as np
a = np.array([[1,2,3,4,5],[3,4,5,6,7]])
print ('第一個數(shù)組:')
print (a)
print ('\n')
b = np.array([[5,6,7,8,9],[7,8,9,10,11]])
print ('第二個數(shù)組:')
print (b)
print ('\n')
print ('水平堆疊:')
c = np.hstack((a,b))
print (c)
print ('\n')輸出結(jié)果如下:
第一個數(shù)組: [[1 2 3 4 5] [3 4 5 6 7]] 第二個數(shù)組: [[ 5 6 7 8 9] [ 7 8 9 10 11]] 水平堆疊: [[ 1 2 3 4 5 5 6 7 8 9] [ 3 4 5 6 7 7 8 9 10 11]]
numpy.vstack 是 numpy.stack 函數(shù)的變體,它通過垂直堆疊來生成數(shù)組。
import numpy as np
a = np.array([[1,2,3,4,5],[3,4,5,6,7]])
print ('第一個數(shù)組:')
print (a)
print ('\n')
b = np.array([[5,6,7,8,9],[7,8,9,10,11]])
print ('第二個數(shù)組:')
print (b)
print ('\n')
print ('豎直堆疊:')
c = np.vstack((a,b))
print (c)輸出結(jié)果為:
第一個數(shù)組: [[1 2 3 4 5] [3 4 5 6 7]] 第二個數(shù)組: [[ 5 6 7 8 9] [ 7 8 9 10 11]] 豎直堆疊: [[ 1 2 3 4 5] [ 3 4 5 6 7] [ 5 6 7 8 9] [ 7 8 9 10 11]]
NumPy 提供了一個輔助函數(shù):dstack() 沿高度堆疊,該高度與深度相同。
import numpy as np a = np.array([[1,2,3,4,5],[3,4,5,6,7]]) b = np.array([[5,6,7,8,9],[7,8,9,10,11]]) arr = np.dstack((a, b)) print(arr)
輸出結(jié)果為:
[[[ 1 5] [ 2 6] [ 3 7] [ 4 8] [ 5 9]] [[ 3 7] [ 4 8] [ 5 9] [ 6 10] [ 7 11]]]