Jak naprawić: valueerror: ustawienie elementu tablicy z sekwencją
Błąd, który możesz napotkać podczas korzystania z Pythona, to:
ValueError : setting an array element with a sequence.
Ten błąd występuje zwykle podczas próby zgrupowania wielu liczb w jedną pozycję w tablicy NumPy.
Poniższy przykład pokazuje, jak w praktyce skorygować ten błąd.
Jak odtworzyć błąd
Załóżmy, że mamy następującą tablicę NumPy:
import numpy as np #create NumPy array data = np. array ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Załóżmy teraz, że próbujemy umieścić dwie liczby na pierwszej pozycji tablicy:
#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.
Błąd mówi nam dokładnie, co zrobiliśmy źle: próbowaliśmy zdefiniować element tablicy NumPy za pomocą sekwencji wartości.
W szczególności staraliśmy się umieścić wartości „4” i „5” na pierwszej pozycji tablicy NumPy.
Nie jest to możliwe, dlatego pojawia się błąd.
Jak naprawić błąd
Sposobem na naprawienie tego błędu jest po prostu przypisanie wartości do pierwszej pozycji tablicy:
#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])
Pamiętaj, że nie otrzymujemy żadnych błędów.
Jeśli rzeczywiście chcemy przypisać dwie nowe wartości elementom tablicy, musimy zastosować następującą składnię:
#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])
Należy pamiętać, że dwie pierwsze wartości w tabeli zostały zmienione, natomiast wszystkie pozostałe wartości pozostały takie same.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:
Jak naprawić błąd KeyError w Pandach
Jak naprawić: ValueError: Nie można przekonwertować float NaN na int
Jak naprawić: Błąd wartości: Nie można rozgłaszać argumentów z kształtami