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函數顯得更加方便。