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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert