Как исправить: все входные массивы должны иметь одинаковое количество измерений


Одна ошибка, с которой вы можете столкнуться при использовании NumPy:

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

Эта ошибка возникает при попытке объединить два массива NumPy с разными размерами.

В следующем примере показано, как исправить эту ошибку на практике.

Как воспроизвести ошибку

Предположим, у нас есть следующие два массива NumPy:

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]

Теперь предположим, что мы пытаемся использовать функцию concatenate() для объединения двух массивов в один массив:

#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)

Мы получаем ValueError , потому что два массива имеют разные размеры.

Как исправить ошибку

Есть два метода, которые мы можем использовать, чтобы исправить эту ошибку.

Способ 1: используйте np.column_stack

Один из способов объединить два массива, избегая при этом ошибок, — использовать функцию column_stack() следующим образом:

np.column_stack ((array1, array2))

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

Обратите внимание, что мы можем успешно объединить два массива без каких-либо ошибок.

Способ 2: используйте np.c_

Мы также можем объединить два массива, избегая ошибок, используя функцию np.c_ следующим образом:

np.c_ [array1, array2]

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

Обратите внимание, что эта функция возвращает тот же результат, что и предыдущий метод.

Дополнительные ресурсы

В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:

Как исправить KeyError в Pandas
Как исправить: ValueError: невозможно преобразовать число с плавающей запятой NaN в целое число
Как исправить: ValueError: операнды не могли транслироваться вместе с фигурами

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.