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


Ошибка, с которой вы можете столкнуться при использовании 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
n.p. 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

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

 n.p. column_stack ((array1, array2))

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

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

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

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

 n.p. c_ [array1, array2]

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *