You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python标准库数学函数获取nan与math.inf?

Python中NaN与Inf的相关问题解答

一、返回NaN的标准库函数

Python标准库的数学函数里确实存在会返回NaN的情况,并非只能手动构造。比如:

  • 当传入超出定义域的参数时,math.acos(1.1)、math.asin(1.1)这类函数会直接返回NaN(因为余弦、正弦值的范围仅为[-1,1],超出该范围的输入没有有效实数解);
  • 一些浮点数运算场景也会产生NaN,比如float('inf') - float('inf')、0.0 * float('inf'),不过这些属于运算而非函数调用。

二、NaN的用途

NaN并非仅用来表示缺失数据,它是IEEE 754标准定义的特殊浮点值:

  • 除了标记缺失、无效的数据外,当数学运算或函数调用没有有效实数结果(且不属于无穷大的情况)时,就会返回NaN,比如前面提到的acos(1.1),就是运算本身无合法实数解,所以用NaN表示这个结果。

三、获取Inf的方式

获取无穷大(Inf)的方式有很多,除了直接构造外,也可以通过函数或运算得到:

  1. 直接构造:
    inf = float("inf")
    # 或
    from math import inf
    
  2. 通过标准库函数返回:
    • math.exp(1000):指数运算结果超出浮点数范围,返回正无穷;
    • math.log(0.0):对0取自然对数,返回负无穷(-inf);
    • math.gamma(0.0):伽马函数在0处的结果为正无穷;
  3. 浮点数运算:
    注意1/0或1.0/0.0会抛出ZeroDivisionError,但float('inf') * 2这类运算会保留无穷大值。

内容的提问来源于stack exchange,提问作者hiro protagonist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 22:09:24