Numpy row_stack() Function
The Numpy row_stack() function is used to stack 1D or 2D arrays as rows into a 2D array. This function is defined in the numpy module and is useful for stacking multiple 1D arrays as rows in a new 2D array, or for concatenating two 2D arrays along the first axis (vertically) if they have compatible shapes.
The numpy.row_stack() function stacks 1D arrays into rows of a 2D array, resulting in an array with shape (m, n), where m is the number of arrays and n is the length of the arrays. When used with 2D arrays, it behaves like numpy.vstack(), stacking the arrays along the first axis as long as they have compatible dimensions along other axes.
Syntax
Following is the syntax of the numpy.row_stack() function −
numpy.row_stack(arrays)
Parameters
Following are the parameters of the Numpy row_stack() function −
- arrays - A sequence of 1D or 2D arrays. For 1D arrays, all must have the same length. For 2D arrays, they must have the same shape along all but the first axis.
Return Values
The function returns a 2D array with each input array stacked as a row in the output.
Example
Following is an basic example demonstrates stacking two 1D arrays as rows using Numpy row_stack() function −
import numpy as np
my_Array1 = np.array([10, 20, 30])
my_Array2 = np.array([40, 50, 60])
row_stacked_array = np.row_stack((my_Array1, my_Array2))
print("Array 1 -", my_Array1)
print("Array 2 -", my_Array2)
print("Row Stacked Array -\n", row_stacked_array)
Output
The output of the above code is as follows:
Array 1 - [10 20 30] Array 2 - [40 50 60] Row Stacked Array - [[10 20 30] [40 50 60]]
Example - Stacking 2D Arrays
In the following example, we stack two 2D arrays with matching shapes along the columns using numpy.row_stack(). The arrays will be concatenated along the first axis, resulting in a 2D array −
import numpy as np
my_Array1 = np.array([[29, 73], [16, 34]])
my_Array2 = np.array([[64, 82], [53, 99]])
row_stacked_array = np.row_stack((my_Array1, my_Array2))
print("Array 1 -\n", my_Array1)
print("Array 2 -\n", my_Array2)
print("Row Stacked Array -\n", row_stacked_array)
Output
The output of the above code is as follows:
Array 1 - [[29 73] [16 34]] Array 2 - [[64 82] [53 99]] Row Stacked Array - [[29 73] [16 34] [64 82] [53 99]]
Example - Stacking Arrays with Different Shapes
If the input arrays have incompatible shapes, such as mismatched lengths for 1D arrays or different shapes along other axes for 2D arrays, numpy.row_stack() will raise a ValueError. In the following example, we attempt to stack arrays of incompatible shapes:
import numpy as np
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5])
try:
row_stacked_array = np.row_stack((array1, array2))
except ValueError as e:
print("ValueError:", e)
Output
The output of the above code is as follows:
ValueError: all input arrays must have the same shape along all but the first axis