认识python中的inf和nan

认识python中的inf和nan

python中的正无穷或负无穷,使用float("inf")或float("-inf")来表示。 这里有点特殊,写成:float("inf"),float("INF")或者float('Inf')都是可以的。 当涉及 > 和 < 比较时,所有数都比无穷小float("-inf")大,所有数都比无穷大float("inf")小。 相等比较时,float("+inf")与float("+inf")、float("inf")三者相等。即:

float("+inf") == float("+inf")  # True
float("+inf") == float("inf")  # True

同样地,float("-inf") == float("-inf") 返回也是True。

简单的加,减,乘操作,还是会返回无穷。

float('inf') + 666  # inf
float('inf') - 888  # inf
float('inf') * 999  # inf
float('inf') / 99999  # inf
float('inf') + float('inf')  # inf

特别地,0 * float('inf') 结果为:nan float('inf') / float('inf') 结果为:nan float('inf') - float('inf') 结果为:nan float('-inf') - float('-inf') 结果也为:nan

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

float('nan') + 9999999
float('nan') - 9999999
float('nan') * 9999999
float('nan') * float('inf')
float('nan') / float('inf')
float('nan') / float('nan')

结果都是:nan 比较操作时,返回的都是False

float('nan') > float('nan')
float('nan') > float('inf')
float('nan') > float('-inf')
float('nan') < float('nan')
float('nan') < float('inf')
float('nan') == float('nan')  # False

特别注意两个float('nan')并不相等!

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

import math
n = float('inf')
print(math.isinf(n))  # True
m = float('nan')
print(math.isnan(m))  # True

numpy中也有相类似的方法可用来判断数据。

动手测试题: 0 / float('inf') == 0 / float('-inf') 结果是True 还是False?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python快速转换numpy数组中Nan和Inf的方法

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    于小勇
  • Jacobin和Hessian矩阵

    有时我们需要计算输入和输出都为向量和函数的所有偏导数。包含所有这样的偏导数的矩阵被称为Jacobian矩阵。具体来说,如果我们有一个函数

    于小勇
  • python中的json模块

    JSON(JavaScriptObjectNotation)格式最初是为JavaScript开发的,但随后成了一种常见文件格式,被包括python在内的众多语言...

    于小勇
  • GLSL-运算符和表达式

    wxdut.com
  • PHP变量类型测试函数的使用:三、is_float的用法

    前几天刚讲完PHP变量类型测试函数【is_int】的用法,今天来讲讲PHP变量类型测试函数【is_float】的用法。

    大脸猫
  • KPNet,追求轻量化的人脸检测器(AAAI 视频解读)

    人工智能顶级学术会议 AAAI 2020 (第 34 届 AAAI)已在美国纽约落幕,会议从 2 月 7 日持续到 2 月 12 日。

    AI科技评论
  • Core官方DI解析(4)--CallSiteRuntimeResolver

    ​ CallSiteRuntimeResolver类型是一个创建或获取服务实例的类型,这个类型继承了CallSiteVisitor<TArgument, TRe...

    莫问今朝
  • 记忆移植?美科学家借助RNA成功实现动物间记忆转移

    新智元
  • Core官方DI解析(4)--CallSiteRuntimeResolver

    这两个类都在其CallSiteVisitor<TArgument, TResult>基类中

    莫问今朝
  • linux环境快速安装python3

    之前在linux上安装python3的时候,为了让不影响linux环境原有的python2的环境,选择的方法都是下载对应的linux环境的python包,不过

    coders

扫码关注云+社区

领取腾讯云代金券