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.]])
posted @ 2020-07-25 11:43  大脸猫12581  阅读(1423)  评论(0编辑  收藏  举报