pythonarray去除inf_Python中的inf与nan
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相关推荐
- c语言输出 inf是什么意思,cuffdiff 输出文件中的inf和nan的意思
cuffdiff 输出文件(gene_exp.diff)中有的log2(FPKMy/FPKMx)值为inf或者-inf,有的test stat值为nan或-nan,他们的意思其实是来源于C语言.其中: ...
- c/c++中的inf与nan
inf :infinity (linux) 等同于 #INF:infinity (windows) nan :not a number 等同于 #IND:indeterminate (windows) ...
- MATLAB基础操作,矩阵乘法、数组矩阵索引、最大最小运算符、零矩阵/随机矩阵/单位矩阵的生成、log函数、Inf和NaN的含义,语句过长用连接符换行、逻辑运算符以及区别
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.矩阵相乘 二.矩阵生成 1.直接输入 2.单位矩阵 3.全零矩阵 2.全一矩阵 2.随机矩阵 三.矩阵操作 四.矩 ...
- python判断nan格式_关于Python中Inf与Nan的判断问题详解
大家都知道 在Python 中可以用如下方式表示正负无穷: float("inf") # 正无穷 float("-inf") # 负无穷 利用 inf(infi ...
- c语言中出现nan错误,c语言中浮点运算的inf和nan错误
============================================ 作者:yuanlulu http://blog.csdn.net/yuanlulu 版权没有,但是转载请保留此 ...
- 关于Python中Inf与Nan的判断问题详解
大家都知道 在Python 中可以用如下方式表示正负无穷: 1 2 float("inf") # 正无穷 float("-inf") # 负无穷 利用 inf( ...
- matlab 判断是否是nan,关于Python中Inf与Nan的判断问题详解
python中运行错误,关于聚类算法出现的nan值问题处理的数据有10个属性,使用kmeans聚类算法出现了nan值的错误,请问怎么说明你的样本数据中有nan值,通常是因为原始数据中包含空字符串或No ...
- 神经网络训练过程中出现loss为nan,神经元坏死
最近在手撸Tensorflow2版本的Faster RCNN模型,稍后会进行整理.但在准备好了模型和训练数据之后的训练环节中出现了大岔子,即训练过程中loss变为nan.nan表示not a numb ...
- c语言isfinite_inf是什么意思,C语言中INF和NAN是什么意思
C语言当中的nan表示not a number,等同于 #IND:indeterminate (windows) 自定义函数: int isNumber(double d){return (d==d) ...
- java中json重复数据结构_JS实现去除数组中重复json的方法示例
本文实例讲述了JS实现去除数组中重复json的方法.分享给大家供大家参考,具体如下: var array = [{"name":"123"},{"na ...
最新文章
- Python多线程thread与threading实现
- listview 的 selection mode 训练小例子
- python三元运算符怎么使用_Python的三元运算符使用方法
- 桌面虚拟化在学生教室及机房的应用案例
- Php与mssql数据交互
- 图解HTTP笔记(二)——HTTP状态码
- Android Adapter中的getView缓存失效
- 关于CAPWAP的一些概念
- Oracle数据备份与恢复
- 1一9数字行书写法_阿拉伯数字1至9连笔
- Mac OS X Safari 插件存放位置
- 50.纯 CSS 创作一个永动的牛顿摆
- 容易发错音的英语单词及音标
- 玉米田(cowfood)
- 高博SLAM14讲ceres实战问题调试记录
- 计算机三级网络技术(补充)
- Android RGB与int型颜色互转
- 《基础微积分教材中译版》--序言
- 【主观感受】无处不在的广告和垃圾软件,“百度一下,你就上当了”
- python 变量命名规范