So beheben sie das problem: das objekt „numpy.float64“ unterstützt keine elementzuweisung
Ein häufiger Fehler, der bei der Verwendung von Python auftreten kann, ist:
TypeError: 'numpy.float64' object does not support item assignment
Dieser Fehler tritt normalerweise auf, wenn Sie versuchen, eckige Klammern zu verwenden, um einer NumPy-Variablen vom Typ float64 einen neuen Wert zuzuweisen.
Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.
So reproduzieren Sie den Fehler
Nehmen wir an, wir erstellen eine NumPy-Variable mit dem Wert 15,22 und versuchen, ihr mithilfe von Klammern den neuen Wert 13,7 zu geben:
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
Wir erhalten die Fehlermeldung, dass das Objekt „numpy.float64“ die Elementzuweisung nicht unterstützt .
Wir haben diesen Fehler erhalten, weil one_float ein Skalar ist, aber wir haben versucht, ihn als Array zu behandeln, in dem wir eckige Klammern verwenden können, um den Wert an Indexposition 0 zu ändern.
Da one_float kein Array ist, können wir beim Versuch, seinen Wert zu ändern, keine eckigen Klammern verwenden.
So beheben Sie den Fehler
Die Möglichkeit, diesen Fehler zu beheben, besteht darin, einfach keine eckigen Klammern zu verwenden, wenn Sie dem Gleitkomma einen neuen Wert zuweisen:
#modify float value to be 13.7
one_float = 13.7
#view float
print (one_float)
13.7
Wir haben es geschafft, den Wert von 15,22 auf 13,7 zu ändern, weil wir keine Klammern verwendet haben.
Beachten Sie, dass es möglich ist, eckige Klammern zu verwenden, um Werte an bestimmten Indexpositionen zu ändern, solange Sie mit einem Array arbeiten.
Der folgende Code zeigt beispielsweise, wie man das erste Element eines NumPy-Arrays mithilfe der Klammernotation von 15,22 auf 13,7 ändert:
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]
Diesmal erhalten wir auch keine Fehlermeldung, da wir mit einem NumPy-Array arbeiten, daher ist es sinnvoll, Klammern zu verwenden.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:
So beheben Sie das Problem in Python: Das Objekt „numpy.ndarray“ kann nicht aufgerufen werden
So beheben Sie: TypeError: Das Objekt „numpy.float64“ kann nicht aufgerufen werden
So beheben Sie: Typfehler: Erwarteter String oder Bytes-Objekt