Як виправити: valueerror: встановлення елемента масиву з послідовністю


Під час використання Python може виникнути така помилка:

 ValueError : setting an array element with a sequence.

Ця помилка зазвичай виникає під час спроби згрупувати кілька чисел в одну позицію в масиві NumPy.

У наступному прикладі показано, як виправити цю помилку на практиці.

Як відтворити помилку

Припустимо, у нас є наступний масив NumPy:

 import numpy as np

#create NumPy array
data = np. array ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

Тепер припустімо, що ми намагаємося розмістити два числа на першій позиції масиву:

 #attempt to cram values '4' and '5' both into first position of NumPy array
data[0] = np. array ([4,5])

ValueError : setting an array element with a sequence.

Помилка говорить нам, що саме ми зробили не так: ми намагалися визначити елемент масиву NumPy за допомогою послідовності значень.

Зокрема, ми спробували розмістити значення «4» і «5» на першій позиції масиву NumPy.

Це неможливо, тому ми отримуємо помилку.

Як виправити помилку

Щоб виправити цю помилку, просто призначте значення першій позиції масиву:

 #assign the value '4' to the first position of the array
data[0] = np. array ([4])

#view updated array
data

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

Зверніть увагу, що ми не отримуємо жодних помилок.

Якщо ми дійсно хочемо призначити два нових значення елементам масиву, нам потрібно використовувати такий синтаксис:

 #assign the values '4' and '5' to the first two positions of the array
data[0:2] = np. array ([4, 5])

#view updated array
data

array([ 4, 5, 3, 4, 5, 6, 7, 8, 9, 10])

Зверніть увагу, що перші два значення були змінені в таблиці, а всі інші значення залишилися без змін.

Додаткові ресурси

У наступних посібниках пояснюється, як виправити інші типові помилки в Python:

Як виправити KeyError у Pandas
Як виправити: ValueError: неможливо перетворити float NaN на int
Як виправити: ValueError: операнди не можна транслювати з фігурами

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

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