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.]])