Python中可以用如下方式表示正负无穷

>>> float('inf') # 正无穷,inf不区分大小写,float('InF')一样可以。

inf

>>> float('-inf') # 负无穷,不区分大小写。

-inf

当涉及 > 和 < 运算时, 所有数都比 -inf 大 ,所有数都比 +inf 小。

>>> float('nan')

nan

nan代表Not A Number(不是一个数),它并不等于0,因为nan不是一个数,所以相关计算都无法得到数字。

正无穷float('inf')

>>> float('inf') + 100

inf

>>> float('inf') - 100

inf

>>> float('inf') * 100

inf

>>> float('inf') / 100

inf

>>> float('inf') + float('inf')

inf

>>> float('inf') - float('inf')

nan

>>> float('inf') * float('inf')

inf

>>> float('inf') / float('inf')

nan

>>> 100 + float('inf')

inf

>>> 100 - float('inf')

-inf

>>> 100 * float('inf')

inf

>>> 100 / float('inf')

0.0

负无穷float('inf')

>>> float('-inf') + 100

-inf

>>> float('-inf') - 100

-inf

>>> float('-inf') * 100

-inf

>>> float('-inf') / 100

-inf

>>> float('-inf') + float('-inf')

-inf

>>> float('-inf') - float('-inf')

nan

>>> float('-inf') * float('-inf')

inf

>>> float('-inf') / float('-inf')

nan

>>> 100 + float('-inf')

-inf

>>> 100 - float('-inf')

inf

>>> 100 * float('-inf')

-inf

>>> 100 / float('-inf')

-0.0

可见,正无穷float('inf')与负无穷float('inf')运算有着异曲同工之妙。

正无穷float('inf')与负无穷float('inf')之间的运算:

>>> float('inf') + float('-inf')

nan

>>> float('inf') - float('-inf')

inf

>>> float('-inf') - float('inf')

-inf

>>> float('inf') * float('-inf')

-inf

>>> float('inf') / float('-inf')

nan

>>> float('-inf') / float('inf')

nan

NaN

所有涉及nan的操作,返回的都是nan。

>>> float('nan') + 100

nan

>>> float('nan') - 100

nan

>>> float('nan') * 100

nan

>>> float('nan') / 100

nan

比较操作时,返回的都是False,哪怕两个float('nan')互相比较都不相等。

>>> float('nan') > float('inf')

False

>>> float('nan') > float('-inf')

False

>>> float('nan') < float('inf')

False

>>> float('nan') < float('-inf')

False

>>> float('nan') == float('nan') # 注意

False

Python中可以用math.isinf()与math.isnan()来判断数据是否为inf或nan。

>>> import math

>>> math.isinf(float('inf'))

True

>>> math.isinf(float('-inf'))

True

>>> math.isnan(float('nan'))

True

除此之外,还有别的方法可以用来判断数据是否为inf和nan,但上述方法是最推荐的,所以其他方法不再赘述。

正负无穷与NaN的is和==判断

>>> inf = float("inf")

>>> ninf = float("-inf")

>>> nan = float("nan")

>>> inf is inf

True

>>> ninf is ninf

True

>>> nan is nan

True

>>> inf == inf

True

>>> ninf == ninf

True

>>> nan == nan

False

>>> inf is float("inf")

False

>>> ninf is float("-inf")

False

>>> nan is float("nan")

False

>>> inf == float("inf")

True

>>> ninf == float("-inf")

True

>>> nan == float("nan")

False

首先,对于正负无穷和 NaN 自身与自身用 is 操作,结果都是 True,这里好像没有什么问题;但是如果用 == 操作,结果却不一样了, NaN 这时变成了 False。如果分别用 float 重新定义一个变量来与它们再用 is 和 == 比较,结果仍然出人意料。出现这种情况的原因稍稍有些复杂,这里就不赘术了,感兴趣可以查阅相关资料。

既然我在谈论这个问题,就再忠告:不要在 Python 中试图用 is 和 == 来判断一个对象是否是正负无穷或者 NaN。乖乖的用 math 模块就OK了,否则就是引火烧身。

pythonarray去除inf_Python中的inf与nan相关推荐

  1. c语言输出 inf是什么意思,cuffdiff 输出文件中的inf和nan的意思

    cuffdiff 输出文件(gene_exp.diff)中有的log2(FPKMy/FPKMx)值为inf或者-inf,有的test stat值为nan或-nan,他们的意思其实是来源于C语言.其中: ...

  2. c/c++中的inf与nan

    inf :infinity (linux) 等同于 #INF:infinity (windows) nan :not a number 等同于 #IND:indeterminate (windows) ...

  3. MATLAB基础操作,矩阵乘法、数组矩阵索引、最大最小运算符、零矩阵/随机矩阵/单位矩阵的生成、log函数、Inf和NaN的含义,语句过长用连接符换行、逻辑运算符以及区别

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.矩阵相乘 二.矩阵生成 1.直接输入 2.单位矩阵 3.全零矩阵 2.全一矩阵 2.随机矩阵 三.矩阵操作 四.矩 ...

  4. python判断nan格式_关于Python中Inf与Nan的判断问题详解

    大家都知道 在Python 中可以用如下方式表示正负无穷: float("inf") # 正无穷 float("-inf") # 负无穷 利用 inf(infi ...

  5. c语言中出现nan错误,c语言中浮点运算的inf和nan错误

    ============================================ 作者:yuanlulu http://blog.csdn.net/yuanlulu 版权没有,但是转载请保留此 ...

  6. 关于Python中Inf与Nan的判断问题详解

    大家都知道 在Python 中可以用如下方式表示正负无穷: 1 2 float("inf") # 正无穷 float("-inf") # 负无穷 利用 inf( ...

  7. matlab 判断是否是nan,关于Python中Inf与Nan的判断问题详解

    python中运行错误,关于聚类算法出现的nan值问题处理的数据有10个属性,使用kmeans聚类算法出现了nan值的错误,请问怎么说明你的样本数据中有nan值,通常是因为原始数据中包含空字符串或No ...

  8. 神经网络训练过程中出现loss为nan,神经元坏死

    最近在手撸Tensorflow2版本的Faster RCNN模型,稍后会进行整理.但在准备好了模型和训练数据之后的训练环节中出现了大岔子,即训练过程中loss变为nan.nan表示not a numb ...

  9. c语言isfinite_inf是什么意思,C语言中INF和NAN是什么意思

    C语言当中的nan表示not a number,等同于 #IND:indeterminate (windows) 自定义函数: int isNumber(double d){return (d==d) ...

  10. java中json重复数据结构_JS实现去除数组中重复json的方法示例

    本文实例讲述了JS实现去除数组中重复json的方法.分享给大家供大家参考,具体如下: var array = [{"name":"123"},{"na ...

最新文章

  1. Python多线程thread与threading实现
  2. listview 的 selection mode 训练小例子
  3. python三元运算符怎么使用_Python的三元运算符使用方法
  4. 桌面虚拟化在学生教室及机房的应用案例
  5. Php与mssql数据交互
  6. 图解HTTP笔记(二)——HTTP状态码
  7. Android Adapter中的getView缓存失效
  8. 关于CAPWAP的一些概念
  9. Oracle数据备份与恢复
  10. 1一9数字行书写法_阿拉伯数字1至9连笔
  11. Mac OS X Safari 插件存放位置
  12. 50.纯 CSS 创作一个永动的牛顿摆
  13. 容易发错音的英语单词及音标
  14. 玉米田(cowfood)
  15. 高博SLAM14讲ceres实战问题调试记录
  16. 计算机三级网络技术(补充)
  17. Android RGB与int型颜色互转
  18. 《基础微积分教材中译版》--序言
  19. 【主观感受】无处不在的广告和垃圾软件,“百度一下,你就上当了”
  20. python 变量命名规范

热门文章

  1. 杨辉三角 SDUT
  2. 网约护士来了?相关App不合规 两大安全问题最受关注
  3. 知我者谓我心忧,不知者谓我何求!
  4. C语言基础练习-输入球体半径,计算球体表面积和体积
  5. 在Windows本地安装ElasticSearch和Kibana
  6. precision,recall,sensitivity, specificity ,mAP等几种评价指标
  7. poi操作word模板替换数据并且导出word
  8. Pycon 2017: Python可视化库大全
  9. 关于Three.js 加载地面贴图的坑
  10. java oracle spatial_安装Oracle Spatial数据组件