Ignorieren Division durch 0 warning in python
Habe ich eine Funktion für die Statistik Fragen:
import numpy as np
from scipy.special import gamma as Gamma
def Foo(xdata):
...
return x1 * (
( #R is a numpy vector
( ((R - x2)/beta) ** (x3 -1) ) *
( np.exp( - ((R - x2) / x4) ) ) /
( x4 * Gamma(x3))
).real
)
Manchmal bekomme ich von der shell die folgende Warnung:
RuntimeWarning: divide by zero encountered in...
Ich die numpy isinf
Funktion zu korrigieren die Ergebnisse der Funktion in anderen Dateien wo ich brauche. so, ich muss nicht gewarnt werden.
Es ist ein Weg, um die Meldung zu ignorieren?
In anderen Worten, ich will nicht, dass die shell diese Nachricht drucken.
Möchte ich nicht deaktivieren, alle python-Warnung, nur dieses eine.
InformationsquelleAutor der Frage overcomer | 2015-04-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie deaktivieren Sie die Warnung mit
numpy.seterr
. Setzen Sie diese, bevor Sie die mögliche division durch null:Werde, dass deaktivieren zero division Warnungen Global. Wenn Sie nur wollen, deaktivieren Sie Sie, für ein wenig, können Sie
numpy.errstate
in einemwith
Klausel:Für eine null-durch-null-division (unbestimmte Ergebnisse in einem NaN), wird der Fehler-Verhalten hat sich geändert mit numpy version 1.12.0: dieser wird nun als "ungültig", während zuvor war es "teilen".
So, wenn es gibt eine chance, dass Sie Ihre Zähler kann null sein, wie auch, verwenden
oder
Finden Sie unter "Kompatibilität" Abschnitt in der release notesletzter Absatz vor dem "Neuen Features" Abschnitt:
InformationsquelleAutor der Antwort dddsnn
Könnten Sie auch
numpy.divide
für die division. So dass Sie nicht haben, um explizit deaktivieren Sie Warnungen.InformationsquelleAutor der Antwort fixxxer