1-Numpy之hstack、vstack、concatenate区别
concatenate与hstack、vstack的异同点:
都表示拼接数组,concatenate可以实现hstack和vstack的功能,只需要通过调整参数axis的值即可。
其中:v表示垂直(Vertical)
h表示水平(Horizontal)
axis=0,表示将拼接新行,相当于vstack;
axis=1,表示将拼接新列,相当于hstack。
在拼接过程中需要注意的是:传入的数组必须在指定轴上有相同的维度。
举个例子吧!
arr=np.array([[1,2,3],[2,2,3],[3,5,1]]) >>> arr array([[1, 2, 3], [2, 2, 3], [3, 5, 1]]) #hstack用法 >>> h_ze = np.zeros((3,1)) >>> h_ze array([[0.], [0.], [0.]]) np.hstack((arr,he_ze)) array([[1., 2., 3., 0.], [2., 2., 3., 0.], [3., 5., 1., 0.]]) #vstack用法 >>> v_ze = np.zeros((1,3)) >>> v_ze array([[0., 0., 0.]]) >>> np.vstack((arr,v_ze)) array([[1., 2., 3.], [2., 2., 3.], [3., 5., 1.], [0., 0., 0.]]) #axis=1相当于hstack >>> np.concatenate((arr,h_ze),axis=1) array([[1., 2., 3., 0.], [2., 2., 3., 0.], [3., 5., 1., 0.]]) #axis=0相当于vstack >>> np.concatenate((arr,v_ze),axis=0) array([[1., 2., 3.], [2., 2., 3.], [3., 5., 1.], [0., 0., 0.]])