Eine Warnung, auf die Sie bei der Verwendung von NumPy stoßen können, 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 erwähnenswert, dass dies nur eine Warnung ist und NumPy einfach einen nan-Wert zurückgibt, wenn Sie versuchen, durch einen ungültigen Wert zu dividieren.

Das folgende Beispiel zeigt, wie dieser Warnung in der Praxis begegnet werden kann.

So reproduzieren Sie den Fehler

Angenommen, wir versuchen, die Werte in einem NumPy-Array durch die Werte in einem anderen NumPy-Array zu dividieren:

import numpy as np

#NumPy-Arrays definieren
x = np.array([4, 5, 5, 7, 0])
y = np.array([2, 4, 6, 7, 0])

#Teile die Werte in x durch die Werte in y
np.divide(x, y)

array([2.    , 1.25  , 0.8333, 1.    ,    nan])

RuntimeWarning: invalid value encountered in true_divide

Beachten Sie, dass NumPy jeden Wert in x durch den entsprechenden Wert in y dividiert, aber eine RuntimeWarning erzeugt wird.

Dies liegt daran, dass die letzte durchgeführte Divisionsoperation Null geteilt durch Null war, was zu einem nan-Wert führte.

Umgang mit dieser Warnung

Wie bereits erwähnt, ist diese RuntimeWarning nur eine Warnung und hat die Ausführung des Codes nicht verhindert.

Wenn Sie diese Art von Warnung jedoch unterdrücken möchten, können Sie die folgende Syntax verwenden:

np.seterr(invalid='ignore')

Dies weist NumPy an, jede Warnung mit einer „ungültigen“ Nachricht darin zu verbergen.

Wenn wir den Code also erneut ausführen, erhalten wir keine Warnung:

import numpy as np

#NumPy-Arrays definieren
x = np.array([4, 5, 5, 7, 0])
y = np.array([2, 4, 6, 7, 0])

#Teile die Werte in x durch die Werte in y
np.divide(x, y)

array([2.    , 1.25  , 0.8333, 1.    ,    nan])

Für den letzten Wert in der Ausgabe wird immer noch ein Nan-Wert zurückgegeben, diesmal 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
Behebung: ValueError: Float NaN kann nicht in Integer konvertiert werden
Behebung: ValueError: Operanden konnten nicht zusammen mit Shapes gesendet werden

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: