2016-05-31 33 views
5

Come si verifica se un'espressione di sympy viene valutata in nan?Verifica se Sympy Expression è Nan?

ho semplicemente bisogno di fare qualcosa di simile:

if is_nan(expression): 
    #Do stuff 
+0

'se espressione == sympy.NaN'? Non sono sicuro di dove esattamente 'NaN' risieda nella libreria sympy, ma so che è una costante predefinita. –

+0

Immagino che funzioni –

+0

Per difendere la mia intelligenza -> numpy non riconoscerà l'uguaglianza in questo modo ... –

risposta

2

In SymPy, == controlla sempre l'uguaglianza strutturale (vale a dire, se due espressioni sono esattamente uguali). Funziona anche per nan, quindi non c'è bisogno di una funzione separata isnan (in senso stretto, la nan non è un IEEE 754 nan di SymPy).

4

In sympy, è possibile verificare la presenza di uguaglianza con l'sympy nan oggetto:

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

In NumPy, non è possibile verificare la presenza di uguaglianza con l'oggetto numpy nan:

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

Quindi esiste un metodo numpy.isnan() e non esiste un metodo sympy.isnan().

credito a Morgan Thrapp