Python 无穷大与NaN
Posted 筱筱的春天
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 无穷大与NaN相关的知识,希望对你有一定的参考价值。
想创建或测试正无穷、负无穷或NaN(非数字) 的浮点数
Python 并没有特殊的语法来表示这些特殊的浮点值,但是可以使用float() 来创建它们。比如:
>>> a = float(‘inf‘) >>> b = float(‘-inf‘) >>> c = float(‘nan‘) >>> a inf >>> b -inf >>> c nan >>> 为了测试这些值的存在,使用math.isinf() 和math.isnan() 函数。比如: >>> math.isinf(a) True >>> math.isnan(c) True >>>
跟比较和操作符相关的时候,无穷大数在执行数学计算的时候会传播,比如:
>>> a = float(‘inf‘) >>> a + 45 inf >>> a * 10 inf >>> 10 / a 0.0 >>>
但是有些操作时未定义的并会返回一个NaN 结果
>>> c = float(‘nan‘) >>> c + 23 nan >>> c / 2 nan >>> c * 2 nan >>> math.sqrt(c) nan >>>
NaN 值的一个特别的地方时它们之间的比较操作总是返回False。
>>> c = float(‘nan‘) >>> d = float(‘nan‘) >>> c == d False >>> c is d False
由于这个原因,测试一个NaN 值得唯一安全的方法就是使用math.isnan() ,也就是上面演示的那样。
以上是关于Python 无穷大与NaN的主要内容,如果未能解决你的问题,请参考以下文章
Python - 输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值
Python 错误帮助:“ValueError:输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值。”