资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 面试经验 > 面试问答

在没有numpy的python中分配变量NaN

面试问答 更新时间: 发布时间: 计算机考试归档 最新发布

在没有numpy的python中分配变量NaN

是的-使用

math.nan

>>> from math import nan>>> print(nan)nan>>> print(nan + 2)nan>>> nan == nanFalse>>> import math>>> math.isnan(nan)True

在Python 3.5之前,可以使用

float("nan")
(不区分大小写)。

请注意,检查两个NaN是否彼此相等将始终返回false。部分原因是不能(严格地说)说两个不是数字的事物彼此相等-请参阅所有比较为IEEE754
NaN值返回false的基本原理是什么?
了解更多详细信息。

相反,

math.isnan(...)
如果需要确定某个值是否为NaN
,请使用。

此外,

==
在尝试将NaN存储在诸如
list
dict
(或使用自定义容器类型)的容器类型中时,对NaN值进行操作的确切语义可能会引起细微问题。有关更多详细信息,请参见检查容器中是否存在NaN。


您还可以使用Python的十进制模块构造NaN数字:

>>> from decimal import Decimal>>> b = Decimal('nan')>>> print(b)NaN>>> print(repr(b))Decimal('NaN')>>>>>> Decimal(float('nan'))Decimal('NaN')>>> >>> import math>>> math.isnan(b)True

math.isnan(...)
也可以使用Decimal对象。


但是,您 不能
在Python的分数模块中构造NaN数字:

>>> from fractions import Fraction>>> Fraction('nan')Traceback (most recent call last):  File "<stdin>", line 1, in <module>  File "C:Python35libfractions.py", line 146, in __new__    numerator)ValueError: Invalid literal for Fraction: 'nan'>>>>>> Fraction(float('nan'))Traceback (most recent call last):  File "<stdin>", line 1, in <module>  File "C:Python35libfractions.py", line 130, in __new__    value = Fraction.from_float(numerator)  File "C:Python35libfractions.py", line 214, in from_float    raise ValueError("Cannot convert %r to %s." % (f, cls.__name__))ValueError: Cannot convert nan to Fraction.

顺便说一句,您也可以执行

float('Inf')
Decimal('Inf')
math.inf
(3.5+)来分配无限数。(另请参阅
math.isinf(...)

但是,这样做

Fraction('Inf')
Fraction(float('inf'))
不允许这样做都会抛出异常,就像NaN一样。

如果您想使用一种快速简便的方法来检查数字既不是NaN也不是无限,则可以使用

math.isfinite(...)
Python
3.2+以上版本。


如果要对复数进行类似的检查,则该

cmath
模块包含与该模块相似的一组函数和常量
math

  • cmath.isnan(...)
  • cmath.isinf(...)
  • cmath.isfinite(...)
    (Python 3.2及更高版本)
  • cmath.nan
    (Python 3.6及更高版本;等效于
    complex(float('nan'), 0.0)
  • cmath.nanj
    (Python 3.6及更高版本;等效于
    complex(0.0, float('nan'))
  • cmath.inf
    (Python 3.6及更高版本;等效于
    complex(float('inf'), 0.0)
  • cmath.infj
    (Python 3.6及更高版本;等效于
    complex(0.0, float('inf'))


转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/638957.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【在没有numpy的python中分配变量NaN】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2