Oplossing: valueerror: een array-element met een reeks instellen
Een fout die u kunt tegenkomen bij het gebruik van Python is:
ValueError : setting an array element with a sequence.
Deze fout treedt meestal op wanneer u meerdere getallen op één positie in een NumPy-array probeert te groeperen.
Het volgende voorbeeld laat zien hoe u deze fout in de praktijk kunt corrigeren.
Hoe de fout te reproduceren
Stel dat we de volgende NumPy-array hebben:
import numpy as np #create NumPy array data = np. array ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Stel nu dat we proberen twee getallen op de eerste positie van de array te plaatsen:
#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.
De fout vertelt ons precies wat we verkeerd hebben gedaan: we hebben geprobeerd een element van de NumPy-array te definiëren met een reeks waarden.
In het bijzonder hebben we geprobeerd de waarden „4“ en „5“ op de eerste positie van de NumPy-array te plaatsen.
Dit is niet mogelijk, waardoor wij een foutmelding krijgen.
Hoe u de fout kunt oplossen
De manier om deze fout op te lossen is door eenvoudigweg een waarde toe te wijzen aan de eerste positie van de array:
#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])
Houd er rekening mee dat we geen fouten ontvangen.
Als we daadwerkelijk twee nieuwe waarden aan de array-elementen willen toekennen, moeten we de volgende syntaxis gebruiken:
#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])
Merk op dat de eerste twee waarden in de tabel zijn gewijzigd, terwijl alle andere waarden hetzelfde zijn gebleven.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in Python kunt oplossen:
Hoe KeyError in Panda’s te repareren
Oplossing: ValueError: Kan float NaN niet naar int converteren
Oplossing: ValueError: Operanden konden niet worden uitgezonden met vormen