Как исправить: 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: невозможно преобразовать число с плавающей запятой NaN в int.
Как исправить: ValueError: операнды не могут быть переданы с помощью фигур.