1. 程式人生 > 實用技巧 >2-Numpy之hstack、vstack、concatenate區別

2-Numpy之hstack、vstack、concatenate區別

concatenate與hstack、vstack的異同點

  都表示拼接陣列,concatenate可以實現hstack和vstack的功能,只需要通過調整引數axis的值即可。

其中:v表示垂直(Vertical)

   h表示水平(Horizontal)

  axis=0,表示將拼接新行,相當於vstack;

  axis=1,表示將拼接新列,相當於hstack。

在拼接過程中需要注意的是:傳入的陣列必須在指定軸上有相同的維度。

舉個例子吧!

 1 arr=np.array([[1,2,3],[2,2,3],[3,5,1]])
 2 >>> arr
 3 array([[1, 2, 3],
4 [2, 2, 3], 5 [3, 5, 1]]) 6 7 #hstack用法 8 >>> h_ze = np.zeros((3,1)) 9 >>> h_ze 10 array([[0.], 11 [0.], 12 [0.]]) 13 14 np.hstack((arr,he_ze)) 15 array([[1., 2., 3., 0.], 16 [2., 2., 3., 0.], 17 [3., 5., 1., 0.]]) 18 19 #vstack用法 20 >>> v_ze = np.zeros((1,3))
21 >>> v_ze 22 array([[0., 0., 0.]]) 23 >>> np.vstack((arr,v_ze)) 24 array([[1., 2., 3.], 25 [2., 2., 3.], 26 [3., 5., 1.], 27 [0., 0., 0.]]) 28 29 30 #axis=1相當於hstack 31 >>> np.concatenate((arr,h_ze),axis=1) 32 array([[1., 2., 3., 0.], 33 [2., 2., 3., 0.],
34 [3., 5., 1., 0.]]) 35 36 #axis=0相當於vstack 37 >>> np.concatenate((arr,v_ze),axis=0) 38 array([[1., 2., 3.], 39 [2., 2., 3.], 40 [3., 5., 1.], 41 [0., 0., 0.]])
View Code