How to Fix: All input arrays must have same number of dimensions


One error you may encounter when using NumPy is:

ValueError: all the input arrays must have same number of dimensions

This error occurs when you attempt to concatenate two NumPy arrays that have different dimensions.

The following example shows how to fix this error in practice.

How to Reproduce the Error

Suppose we have the following two NumPy arrays:

import numpy as np

#create first array
array1 = np.array([[1, 2], [3, 4], [5,6], [7,8]])

print(array1) 

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

#create second array 
array2 = np.array([9,10, 11, 12])

print(array2)

[ 9 10 11 12]

Now suppose we attempt to use the concatenate() function to combine the two arrays into one array:

#attempt to concatenate the two arrays
np.concatenate([array1, array2])

ValueError: all the input arrays must have same number of dimensions, but the array at
            index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)

We receive a ValueError because the two arrays have different dimensions.

How to Fix the Error

There are two methods we can use to fix this error.

Method 1: Use np.column_stack

One way to concatenate the two arrays while avoiding errors is to use the column_stack() function as follows:

np.column_stack((array1, array2))

array([[ 1,  2,  9],
       [ 3,  4, 10],
       [ 5,  6, 11],
       [ 7,  8, 12]])

Notice that we’re able to successfully concatenate the two arrays without any errors.

Method 2: Use np.c_

We can also concatenate the two arrays while avoiding errors using the np.c_ function as follows:

np.c_[array1, array2]

array([[ 1,  2,  9],
       [ 3,  4, 10],
       [ 5,  6, 11],
       [ 7,  8, 12]])

Notice that this function returns the exact same result as the previous method.

Additional Resources

The following tutorials explain how to fix other common errors in Python:

How to Fix KeyError in Pandas
How to Fix: ValueError: cannot convert float NaN to integer
How to Fix: ValueError: operands could not be broadcast together with shapes

Leave a Reply

Your email address will not be published.