2016-05-31 79 views
5

如何檢查sympy表達式是否評估爲nan?檢查Sympy表達式是否爲Nan?

我只是需要做這樣的事情:

if is_nan(expression): 
    #Do stuff 
+0

'if expression == sympy.NaN'?我不確定'NaN'生活在sympy庫中的哪個位置,但我知道它是一個預先定義的常量。 –

+0

我想那是行得通的 –

+0

爲了捍衛我的智慧 - > numpy不會以這種方式承認平等...... –

回答

2

在SymPy,==總是檢查結構相等(即,如果兩個表達式是完全相等)。即使對於nan也是如此,所以不需要單獨的isnan功能(嚴格來說,SymPy的nan不是IEEE 754 nan)。

4

在sympy,您可以檢查與sympy楠對象平等:

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

在numpy的,你不能檢查與平等numpy nan對象:

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

因此,存在一個numpy.isnan()方法,並且不存在一個sympy.isnan()方法。

信用摩根Thrapp