The hstack()
method stacks the sequence of input arrays horizontally.
import numpy as np
array1 = np.array([[0, 1], [2, 3]])
array2 = np.array([[4, 5], [6, 7]])
# stack the arrays
stackedArray = np.hstack((array1, array2))
print(stackedArray)
'''
Output
[[0 1 4 5]
[2 3 6 7]]
'''
hstack() Syntax
The syntax of hstack()
is:
numpy.hstack(tup)
hstack() Argument
The hstack()
method takes a single argument:
tup
- a tuple of arrays to be stacked
Note: The shape of all arrays in a given tuple must be the same, except for the second dimension because we are stacking in axis 1 (horizontally).
hstack() Return Value
The hstack()
method returns the horizontally stacked array.
Example 1: Horizontally Stack 3 Arrays
import numpy as np
# arrays with shape (2,2)
array1 = np.array([[0, 1], [2, 3]])
array2 = np.array([[4, 5], [6, 7]])
# array with shape (2, 1)
array3 = np.array([[8], [9]])
# stack the arrays
stackedArray = np.hstack((array1, array2, array3))
print(stackedArray)
Output
[[0 1 4 5 8] [2 3 6 7 9]]
Here, we have stacked 3 arrays of different shapes.
The shape of array3 is (2,1)
, yet we could stack it with arrays of shape (2, 2)
because only the second dimension (2,
1)
of array3 is different from the other 2 arrays.
Example 2: Horizontally Stack Arrays With Invalid Shapes
import numpy as np
# arrays with shape (2, 2)
array1 = np.array([[0, 1], [2, 3]])
array2 = np.array([[4, 5], [6, 7]])
# arrays with shape (1, 2)
array3 = np.array([[8, 9]])
# stack the arrays with invalid shape
stackedArray = np.hstack((array1, array2, array3))
print(stackedArray)
Output
ValueError: all the input array dimensions except for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 2 and the array at index 2 has size 1
Here, the shape of array3 is (1,
2)
, which conflicts while stacking with arrays of shape (2,2)
.