Numpy——數組合並

1.np.vstack()

對於一個array的合併,我們可以想到按行、按列等多種方式進行合併。

import numpy as np
A = np.array([1,2,3,4,5,6])
B = np.array([6,5,4,3,2,1])

print(A)
print(B)
print(np.vstack((A,B)))    #沿着豎直方向將矩陣堆疊起來
C = np.vstack((A,B))
print(C)
print(A.shape , B.shape, C.shape)

vertical stack本身屬於一種上下合併,即對括號中的兩個整體進行對應操作

2.np.hstack()

左右合併

import numpy as np
A = np.array([1,2,3,4,5,6]) 
B = np.array([6,5,4,3,2,1])
D = np.hstack((A,B))
print(D)
print(A.shape, B.shape, D.shape)

3.np.newaxis()

對於非矩陣,此時就需要我們藉助其他的函數操作進行轉置:

import numpy as np
A = np.array([1,2,3,4,5,6]) 

print(A)
print(A.shape)
print(A[np.newaxis,:])  #在行方向加了一個維度
print(A[np.newaxis,:].shape)

print(A[:,np.newaxis])  #在列方向加了一個維度
print(A[:,np.newaxis].shape)

4.綜合newaxis、vstack、hstack

import numpy as np
A = np.array([1,2,3,4,5,6])[:,np.newaxis]  #在列方向加了一個維度
B = np.array([6,5,4,3,2,1])[:,np.newaxis]

C = np.vstack((A,B))    #在垂直方向合併A、B
D = np.hstack((A,B))    ##在水平方向合併A、B
print(C)
print(D)
print(A.shape,B.shape,C.shape,D.shape)

5.np.concatenate()

當你的合併操作需要針對多個矩陣或序列時,藉助concatenate函數可能會讓你使用起來比前述的函數更加方便:

import numpy as np
A = np.array([1,2,3,4,5,6])[:,np.newaxis]
B = np.array([6,5,4,3,2,1])[:,np.newaxis]

C = np.concatenate((A,A,B,B,A,A),axis = 1)
print(C)
D = np.concatenate((A,A,B,B,A,A),axis = 0)
print(D)

axis能控制矩陣的橫向或縱向,相比較vstack和hstack函數顯得更加方便。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章