2016-05-31 57 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