对于一个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函数显得更加方便。