在机器学习或深度学习中,会经常遇到需要把多个向量或矩阵按某轴方向进行合并的情况,也会遇到展平的情况,如在卷积或循环神经网络中,在全连接层之前,需要把矩阵展平。这节介绍几种数据合并和展平的方法。
import numpy as np a=np.array([1,2,3]) b=np.array([4,5,6]) c=np.append(a,b) print(c) #或利用concatenate d=np.concatenate([a,b]) print(d)
打印结果:
[1 2 3 4 5 6] [1 2 3 4 5 6]
import numpy as np a=np.arange(4).reshape(2,2) b=np.arange(4).reshape(2,2) #按行合并 c=np.append(a,b,axis=0) print(c) print("合并后数据维度",c.shape) #按列合并 d=np.append(a,b,axis=1) print("按列合并结果:") print(d) print("合并后数据维度",d.shape)
打印结果:
[[0 1] [2 3] [0 1] [2 3]] 合并后数据维度 (4, 2) 按列合并结果: [[0 1 0 1] [2 3 2 3]] 合并后数据维度 (2, 4)
import numpy as np nd15=np.arange(6).reshape(2,-1) print(nd15) #按照列优先,展平。 print("按列优先,展平") print(nd15.ravel('F')) #按照行优先,展平。 print("按行优先,展平") print(nd15.ravel())
打印结果:
[[0 1 2] [3 4 5]] 按列优先,展平 [0 3 1 4 2 5] 按行优先,展平 [0 1 2 3 4 5]