Як виправити: усі вхідні масиви повинні мати однакову кількість вимірів


Під час використання 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

Одним із способів об’єднати дві таблиці, уникаючи помилок, є використання функції column_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: неможливо перетворити float NaN на int
Як виправити: ValueError: операнди не можна транслювати з фігурами

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *