Як виправити: 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: операнди не можна транслювати з фігурами