Lösung: ungültiger wert in true_divide gefunden
Eine Warnung, die bei der Verwendung von NumPy auftreten kann, ist:
RuntimeWarning : invalid value encountered in true_divide
Diese Warnung tritt auf, wenn Sie versuchen, in einem NumPy-Array durch einen ungültigen Wert (z. B. NaN, Inf usw.) zu dividieren.
Es ist zu beachten, dass dies nur eine Warnung ist und NumPy einfach einen Nan-Wert zurückgibt, wenn versucht wird, durch einen ungültigen Wert zu dividieren.
Das folgende Beispiel zeigt, wie auf diese Warnung in der Praxis reagiert werden kann.
So reproduzieren Sie den Fehler
Angenommen, wir versuchen, die Werte eines NumPy-Arrays durch die Werte eines anderen NumPy-Arrays zu dividieren:
import numpy as np #define NumPy arrays x = np. array ([4, 5, 5, 7, 0]) y = np. array ([2, 4, 6, 7, 0]) #divide the values in x by the values in y n.p. divide (x,y) array([2., 1.25, 0.8333, 1., no]) RuntimeWarning : invalid value encountered in true_divide
Beachten Sie, dass NumPy jeden Wert von x durch den entsprechenden Wert von y dividiert, aber eine RuntimeWarning erzeugt wird.
Dies liegt daran, dass die letzte durchgeführte Divisionsoperation eine Division von Null durch Null war, was zu einem Wert nan führte.
So reagieren Sie auf diese Warnung
Wie bereits erwähnt, ist diese RuntimeWarning nur eine Warnung und verhindert nicht die Ausführung des Codes.
Wenn Sie diese Art von Warnung jedoch unterdrücken möchten, können Sie die folgende Syntax verwenden:
n.p. seterr (invalid=' ignore ')
Dadurch wird NumPy angewiesen, alle Warnungen auszublenden, die eine „ungültige“ Nachricht enthalten.
Wenn wir den Code also erneut ausführen, erhalten wir keine Warnungen:
import numpy as np #define NumPy arrays x = np. array ([4, 5, 5, 7, 0]) y = np. array ([2, 4, 6, 7, 0]) #divide the values in x by the values in y n.p. divide (x,y) array([2., 1.25, 0.8333, 1., no])
Für den letzten Wert der Ausgabe wird weiterhin ein Nan- Wert zurückgegeben, dieses Mal wird jedoch keine Warnmeldung angezeigt.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:
So beheben Sie KeyError in Pandas
So beheben Sie: ValueError: Float NaN kann nicht in int konvertiert werden
So beheben Sie: ValueError: Operanden konnten nicht mit Formen übertragen werden