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