Python

# NumPy np.stack()

We use the NumPy stack() function to join a sequence of arrays (same dimension) along a new axis.

## NumPy Stack() Function Syntax

The stack() function provides a relatively simple syntax as reflected in the example below:

numpy.stack(arrays, axis=0, out=None)

The function parameters are as follows:

Parameters

1. arrays – refers to the sequence of arrays to be concatenated. As mentioned, each array must be of the same shape.
2. axis – specifies along which axis we connect the input arrays.
3. out – specifies the destination path for the output array.

Return Value
The function returns a concatenated array with one more dimension than the input arrays.

## Example 1

Consider the following example:

import numpy as np
arr_1 = np.array([[1,2,3],[4,5,6]])
arr_2 = np.array([[7,8,9],[10,11,12]])

concatenated =  np.stack((arr_1, arr_2), axis=0)
print(f"shape: {concatenated.shape}")
display(concatenated)

We use the stack() function to concatenate two arrays along axis zero in the previous code.

The resulting shape and array are as follows:

shape: (2, 2, 3)
array([[[ 1,  2,  3],
[ 4,  5,  6]],

[[ 7,  8,  9],
[10, 11, 12]]])

## Example 2

We can also concatenate the two arrays along axis one as reflected in the following example:

arr_1 = np.array([[1,2,3],[4,5,6]])
arr_2 = np.array([[7,8,9],[10,11,12]])

concatenated =  np.stack((arr_1, arr_2), axis=1)
print(f"shape: {concatenated.shape}")
display(concatenated)

In this case, we specify the axis=1, which results in the following shape and array:

shape: (2, 2, 3)
array([[[ 1,  2,  3],
[ 7,  8,  9]],

[[ 4,  5,  6],
[10, 11, 12]]])

NOTE: Although the shape of the array does not change, the order in which the elements are concatenated is altered.

## Example 3

To stack the arrays along the last axis, we can specify the axis as a negative integer, as shown below:

concatenated =  np.stack((arr_1, arr_2), axis=-1)
print(f"shape: {concatenated.shape}")
display(concatenated)

The above snippet returns like the following example:

shape: (2, 3, 2)
array([[[ 1,  7],
[ 2,  8],
[ 3,  9]],

[[ 4, 10],
[ 5, 11],
[ 6, 12]]])

## Conclusion

This article explores the fundamentals and elements of the NumPy stack function. We also illustrate how to use the stack function in a set of scenarios.

Check out the Linux Hint website for more NumPy tutorials.