2016-05-31 23 views
5

Wie überprüfe ich, ob ein Sympy-Ausdruck zu Nan bewertet?Prüfen, ob Sympy Expression Nan ist?

Ich brauche einfach, so etwas zu tun:

if is_nan(expression): 
    #Do stuff 
+0

'if Ausdruck == sympy.NaN'? Ich bin mir nicht sicher, wo genau 'NaN' in der Sympy-Bibliothek lebt, aber ich weiß, dass es eine vordefinierte Konstante ist. –

+0

Ich denke, das funktioniert –

+0

Um meine Intelligenz zu verteidigen -> numpy wird Gleichheit auf diese Weise nicht erkennen ... –

Antwort

2

In SymPy, == prüft immer strukturelle Gleichheit (das heißt, wenn zwei Ausdrücke genau gleich sind). Dies funktioniert sogar für Nanometer, so dass keine separate isnan Funktion benötigt wird (strenggenommen ist SymPys Nan nicht ein IEEE 754 Nan).

4

In sympy können Sie auf Gleichheit überprüfen Sie mit dem sympy nan Objekt:

>>> alpha = sympy.nan 
>>> alpha == sympy.nan 
True 

In numpy, können Sie nicht auf Gleichheit überprüfen mit Das numpy nan Objekt:

>>> alpha = numpy.nan 
>>> alpha == numpy.nan 
False 
>>> numpy.isnan(alpha) 
True 

Daher gibt es eine numpy.isnan() -Methode, und es gibt keine a sympy.isnan() Methode.

Credit Morgan Thrapp