Oplossing: object 'numpy.float64' ondersteunt geen elementtoewijzing
Een veel voorkomende fout die u kunt tegenkomen bij het gebruik van Python is:
TypeError: 'numpy.float64' object does not support item assignment
Deze fout treedt meestal op wanneer u vierkante haakjes probeert te gebruiken om een nieuwe waarde toe te wijzen aan een NumPy-variabele van het type float64 .
Het volgende voorbeeld laat zien hoe u deze fout in de praktijk kunt oplossen.
Hoe de fout te reproduceren
Laten we zeggen dat we een NumPy-variabele maken met een waarde van 15,22 en proberen haakjes te gebruiken om deze een nieuwe waarde van 13,7 te geven:
import numpy as np #define some float value one_float = np. float64 (15.22) #attempt to modify float value to be 13.7 one_float[0] = 13.7 TypeError: 'numpy.float64' object does not support item assignment
We ontvangen de foutmelding dat object ’numpy.float64′ de elementtoewijzing niet ondersteunt .
We hebben deze foutmelding ontvangen omdat one_float een scalair is, maar we hebben geprobeerd deze te behandelen als een array waarbij we vierkante haakjes konden gebruiken om de waarde op indexpositie 0 te wijzigen.
Omdat one_float geen array is, kunnen we geen vierkante haakjes gebruiken als we de waarde ervan proberen te wijzigen.
Hoe u de fout kunt oplossen
De manier om deze fout op te lossen is door simpelweg geen vierkante haakjes te gebruiken bij het toekennen van een nieuwe waarde aan de float:
#modify float value to be 13.7
one_float = 13.7
#view float
print (one_float)
13.7
We zijn erin geslaagd de waarde te wijzigen van 15,22 in 13,7 omdat we geen haakjes gebruikten.
Houd er rekening mee dat het mogelijk is om vierkante haakjes te gebruiken om waarden in specifieke indexposities te wijzigen, zolang u maar met een array werkt.
De volgende code laat bijvoorbeeld zien hoe u het eerste element van een NumPy-array kunt wijzigen van 15.22 in 13.7 met behulp van de haakjesnotatie:
import numpy as np
#define a NumPy array of floats
many_floats = np. float64 ([15.22, 34.2, 15.4, 13.2, 33.4])
#modify float value in first index position of array to be 13.7
many_floats[0] = 13.7
#view updated array
print (many_floats)
[13.7 34.2 15.4 13.2 33.4]
Deze keer krijgen we ook geen foutmelding omdat we met een NumPy-array werken, dus het is logisch om haakjes te gebruiken.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in Python kunt oplossen:
Oplossing in Python: Object ’numpy.ndarray‘ kan niet worden opgevraagd
Oplossing: TypeError: Object ’numpy.float64′ kan niet worden opgevraagd
Oplossing: Typefout: verwacht tekenreeks- of bytesobject