Ein Fehler, auf den Sie in Python stoßen können, ist:

runtimewarning: invalid value encountered in double_scalars

Dieser Fehler tritt auf, wenn Sie versuchen, eine mathematische Operation durchzuführen, die extrem kleine oder extrem große Zahlen beinhaltet, und Python einfach einen NaN-Wert als Ergebnis ausgibt.

Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.

So reproduzieren Sie den Fehler

Angenommen, wir versuchen, die folgende mathematische Operation mit zwei NumPy-Arrays auszuführen:

import numpy as np

#definiere zwei NumPy-Arrays
array1 = np.array([[1100, 1050]])
array2 = np.array([[1200, 4000]])

#komplexe mathematische Operationen ausführen
np.exp(-3*array1).sum() / np.exp(-3*array2).sum()

RuntimeWarning: invalid value encountered in double_scalars

Wir erhalten eine RuntimeWarning, da das Ergebnis im Nenner extrem nahe bei Null liegt.

Dies bedeutet, dass die Antwort auf das Divisionsproblem extrem groß sein wird und Python einen so großen Wert nicht verarbeiten kann.

So beheben Sie den Fehler

Typischerweise besteht die Möglichkeit, diese Art von Fehler zu beheben, darin, eine spezielle Funktion aus einer anderen Bibliothek in Python zu verwenden, die in der Lage ist, extrem kleine oder extrem große Werte in Berechnungen zu verarbeiten.

In diesem Fall können wir die Funktion logsumexp() aus der SciPy-Bibliothek verwenden:

import numpy as np
from scipy.special import logsumexp

#definiere zwei NumPy-Arrays
array1 = np.array([[1100, 1050]])
array2 = np.array([[1200, 4000]])

#komplexe mathematische Operationen ausführen
np.exp(logsumexp(-3*array1) - logsumexp(-3*array2))

2.7071782767869983e+195

Beachten Sie, dass das Ergebnis extrem groß ist, wir jedoch keinen Fehler erhalten, da wir eine spezielle mathematische Funktion aus der SciPy-Bibliothek verwendet haben, die für die Verarbeitung dieser Arten von Zahlen entwickelt wurde.

In vielen Fällen lohnt es sich, spezielle Funktionen aus der SciPy-Bibliothek nachzuschlagen, die extreme mathematische Operationen verarbeiten können, da diese Funktionen speziell für wissenschaftliches Rechnen entwickelt wurden.

Hinweis : Die vollständige Online-Dokumentation für die Funktion logsumexp() finden Sie hier .

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: