float(nan')表示nan(不是数字)。但我该如何检查呢?
当前回答
math.isnan()
或将数字与自身进行比较。NaN总是!=NaN,否则(例如,如果是数字),比较应成功。
其他回答
当python<2.6时
def isNaN(x):
return str(float(x)).lower() == 'nan'
这适用于Solaris 5.9机箱上的python 2.5.1和Ubuntu 10上的python 2.6.5
在Python 3.6中,检查字符串值x math.isnan(x)和np.issan(x)会引发错误。所以我无法检查给定值是否为NaN,如果我事先不知道它是一个数字。以下内容似乎解决了这个问题
if str(x)=='nan' and type(x)!='str':
print ('NaN')
else:
print ('non NaN')
使用math.isnan:
>>> import math
>>> x = float('nan')
>>> math.isnan(x)
True
numpy.isnan(数字)告诉你它是不是NaN。
我进入这篇文章,因为我在功能方面遇到了一些问题:
math.isnan()
运行此代码时出现问题:
a = "hello"
math.isnan(a)
它引发了异常。我的解决方案是再做一次检查:
def is_nan(x):
return isinstance(x, float) and math.isnan(x)