首页 / 知识
Python中的inf与nan
2023-11-12 13:35:00
python中可以用如下方式表示正负无穷
>>>float('inf')#正无穷,inf不区分大小写,float('InF')一样可以。
inf
>>>float('-inf')#负无穷,不区分大小写。
-inf
当涉及>和<运算时,所有数都比-inf大,所有数都比+inf小。
>>>float('nan')
nan
nan代表NotANumber(不是一个数),它并不等于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') False >>>float('nan') False >>>float('nan')==float('nan')#注意 False Python中可以用math.isinf()与math.isnan()来判断数据是否为inf或nan。 >>>importmath >>>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") >>>infisinf True >>>ninfisninf True >>>nanisnan True >>>inf==inf True >>>ninf==ninf True >>>nan==nan False >>>infisfloat("inf") False >>>ninfisfloat("-inf") False >>>nanisfloat("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了,否则就是引火烧身。 以上内容为大家介绍了Python中的inf与nan,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
python的调用绑定方法和非绑定方法
python的调用绑定方法和非绑定方法,代码,方法,实例,第一,培训,时计,奇数,偶数,参数,定义,在Python中,如果用实例去调用方法,这种限制就被称为PyPython网络编程调用接收数据的三种
Python网络编程调用接收数据的三种方法,数据,代码,基础,通用,通讯,服务,网络,培训,方法,报文,最近在使用python进行网络编程开发一个通用的tc用Python爬取百度搜索结果
用Python爬取百度搜索结果,百度,项目,分析,软件,网址,广告,时间,培训,粮食,标题,一、前言众所周知,百度上直接搜索关键字会出来一大堆东西,时常数据科学领域Python比R语言更好
数据科学领域Python比R语言更好,数据,公司,工具,时间,项目,工作,庞大,受益,系统,代码,经常有学员问我们,在数据科学领域里,到底是该选Python呢,Python 3.6 中针对文件系统的神奇
Python 3.6 中针对文件系统的神奇方法,数字,代码,数据,标准,信息,培训,首次,工作,文件名,常数,Python3.6首次发布于2016年,尽管它已经发布了很python的数据类型
python的数据类型,数字,较大,数据,培训,变量,表示,字符串,赋值,常量,小数,1.整型Python可以处理任意大小的整数,当然包括负整数,在程序中的表示用Python开发一个简单的猜数字游戏
用Python开发一个简单的猜数字游戏,数字,代码,培训,官网,设备,程序,玩家,注释,内容,游戏,本文介绍如何使用Python制作一个简单的猜数字游戏。Python 之模块重载的五种方法
Python 之模块重载的五种方法,环境,培训,方法,模块,文件夹,例子,下面,内容,语句,请看,python环境准备新建一个foo文件夹,其下包含一个bar.py文Python语言自带的数据结构有哪些
Python语言自带的数据结构有哪些,异常,数字,数据,元素,序列,培训,位置,名称,分析,括号,Python作为一种脚本语言,其要求强制缩进,使其易读、美观提升Python数据分析能力的方法
提升Python数据分析能力的方法,分析,数据,工具,代码,时间,环境,报告,信息,培训,标准,1.Pandas分析包这个工具的好处是显而易见的。下面的动画Python数据结构的时间复杂性
Python数据结构的时间复杂性,时间,项目,情况,平均,复杂度,培训,术语,数据,状态,操作,1.让我们了解大O符号的含义是什么?在算法中执行许多操作数据科学中必须了解的Python核心库
数据科学中必须了解的Python核心库,数据,生产,代码,标准,分析,培训,图片,工具,统一,涉足,python有三个核心数据科学库,在此基础上还创建了许多