We’ll explore how to stack arrays using the NumPy Python library. Stacking arrays is a key operation in data manipulation, often used to combine or reshape data. NumPy offers several methods for stacking arrays vertically, horizontally, and based on different dimensions, giving you flexibility in managing multi-dimensional data.
Arrays are stackable. I’ll show how to stack array vertically and horizontally in Python Numpy.
Using vstack
To stack arrays vertically use Numpy vstack function.
import numpy as np my_array = np.array([[0, 1], [2, 4], [5, 6]]) my_second_array = np.array([[1, 4], [3, 7], [5, 8]]) stacked_array = np.vstack((my_array, my_second_array)) print(f"Arrays stacked vertically: \n {stacked_array}")
Using hstack
Similarlly you can stack array horizontally with Numpy hstack function.
import numpy as np my_array = np.array([[0, 1], [2, 4], [5, 6]]) my_second_array = np.array([[1, 4], [3, 7], [5, 8]]) stacked_array = np.hstack((my_array, my_second_array)) print(f"Arrays stacked horizontally: \n {stacked_array}")
Stacking based on dimensions
There is also a possible to stack array based on dimensions configured by Numpy stack axis parameter.
Let’s see above example with two different axis parameters based on -1 and 1 dimension of stacking.
import numpy as np my_array = np.array([[0, 1], [2, 4], [5, 6]]) my_second_array = np.array([[1, 4], [3, 7], [5, 8]]) stacked_array = np.stack((my_array, my_second_array), axis=-1) print(f"Arrays stacked using axis=-1: \n {stacked_array}") stacked_array = np.stack((my_array, my_second_array), axis=1) print(f"Arrays stacked using axis=1: \n {stacked_array}")
As you can see there are difference in outputs depends on axis parameter chosen.
For 3-dimension axes you can set axis parameter between -3 and 3 (including 0). For every other value you will get different outputs.
Using dstack
The other stacking possibility is also third axis stack. There is Numpy dstack function for that.
import numpy as np my_array = np.array([[0, 1], [2, 4], [5, 6]]) my_second_array = np.array([[1, 4], [3, 7], [5, 8]]) stacked_array = np.dstack((my_array, my_second_array)) print(f"Third axis stack: \n {stacked_array}")
Now, you know so many ways to stack arrays in Python Numpy.
By mastering these techniques, you can efficiently stack arrays in NumPy for various data manipulation tasks, making your data processing more flexible and versatile.