In this tutorial, we will use some examples to show you how to use numpy.vstack() and numpy.hstack() in numpy.
numpy.vstack()
numpy.vstack() is defined as:
numpy.vstack(tup)
Stack arrays in sequence vertically (row wise).
This is equivalent to concatenation along the first axis (axis = 0) after 1-D arrays of shape (N,) have been reshaped to (1,N)
It will return a at least 2-D ndarray.
For example:
import numpy as np a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) c1 = np.concatenate([np.reshape(a,[1, -1]), np.reshape(b,[1, -1])], axis = 0) c2= np.vstack((a, b)) print(c1) print(c2)
In this example, the shape of a and b is (3,), we will reshape them to (1, 3), then concatenate them on first axis axis = 0.
Run this code, we can find c1 and c2 are the same.
[[1 2 3] [4 5 6]] [[1 2 3] [4 5 6]]
Example 2:
import numpy as np a = np.array([[1], [2], [3]]) b = np.array([[4], [5], [6]]) c1 = np.concatenate((a, b), axis = 0) c2= np.vstack((a, b)) print(c1) print(c2)
In this example, the shape of a and b is (3,1), we will concatenate them directly on firest axis, where axis = 0.
Run this code, we will get:
[[1] [2] [3] [4] [5] [6]] [[1] [2] [3] [4] [5] [6]]
c1 and c2 are also the same.
Example 3: how about the shape of a and b is (2, 2, 2)?
import numpy as np a = np.array([[[1,2],[3,4]],[[5, 6], [7, 8]]]) b = a = np.array([[[11,21],[31,41]],[[51, 61], [71, 81]]]) c1 = np.concatenate((a, b), axis = 0) c2= np.vstack((a, b)) print(c1) print(c2)
We also concatenate a and b on axis = 0. c1 and c2 are also the some.
[[[11 21] [31 41]] [[51 61] [71 81]] [[11 21] [31 41]] [[51 61] [71 81]]] [[[11 21] [31 41]] [[51 61] [71 81]] [[11 21] [31 41]] [[51 61] [71 81]]]
numpy.hstack()
numpy.hstack() is defined as:
numpy.hstack(tup)
Stack arrays in sequence horizontally (column wise).
This is equivalent to concatenation along the second axis (axis = 1), as to 1-D arrays, it will concatenate on axis = 0.
For example:
import numpy as np a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) c1 = np.concatenate([a, b], axis = 0) c2= np.hstack((a, b)) print(c1) print(c2)
In this example, the shape of a and b is (1, 3), we will concatenate them on axis = 0.
Run this code, we will find c1 and c2 are the same.
[1 2 3 4 5 6] [1 2 3 4 5 6]
Example 2:
import numpy as np a = np.array([[1], [2], [3]]) b = np.array([[4], [5], [6]]) c1 = np.concatenate((a, b), axis = 1) c2= np.hstack((a, b)) print(c1) print(c2)
Here the shape of a and b are (2, 1) , they are not 1-D array, we will concatenate them on axis = 1.
Run this code, we also c1 and c2 are the same.
[[1 4] [2 5] [3 6]] [[1 4] [2 5] [3 6]]
Example 3: how about the shape of a and b is (2, 2, 2)?
import numpy as np a = np.array([[[1,2],[3,4]],[[5, 6], [7, 8]]]) b = a = np.array([[[11,21],[31,41]],[[51, 61], [71, 81]]]) c1 = np.concatenate((a, b), axis = 1) c2= np.hstack((a, b)) print(c1) print(c2)
Here the shape of a and b are (2, 2, 2), they are not 1-D array, we will concatenate them on axis = 1.
Run this code, we will find c1 and c2 are also the same.
[[[11 21] [31 41] [11 21] [31 41]] [[51 61] [71 81] [51 61] [71 81]]] [[[11 21] [31 41] [11 21] [31 41]] [[51 61] [71 81] [51 61] [71 81]]]