run 时:

>>> import numpy as np
>>> np.exp(1000)
<stdin>:1: RuntimeWarning: overflow encountered in exp

显示溢出警告. 但是,为什么下面没有给出下溢警告呢?

>>> np.exp(-100000)
0.0

推荐答案

默认情况下,下溢错误被忽略.

当前设置可以按如下方式判断:

print(np.geterr())
{'divide': 'warn', 'over': 'warn', 'under': 'ignore', 'invalid': 'warn'}

要像溢出一样对下溢发出警告,可以使用np.seterr:

np.seterr(under="warn")
np.exp(-100000)  # RuntimeWarning: underflow encountered in exp

或者,你可以像这样使用np.errstate:

import numpy as np

with np.errstate(under="warn"):
    np.exp(-100000)  # RuntimeWarning: underflow encountered in exp

Python相关问答推荐

如何处理嵌套的SON?

Python在tuple上操作不会通过整个单词匹配

如何在具有重复数据的pandas中对groupby进行总和,同时保留其他列

使用SciPy进行曲线匹配未能给出正确的匹配

重新匹配{ }中包含的文本,其中文本可能包含{{var}

C#使用程序从Python中执行Exec文件

SQLAlchemy Like ALL ORM analog

字符串合并语法在哪里记录

不能使用Gekko方程'

Django—cte给出:QuerySet对象没有属性with_cte''''

使用字典或列表的值组合

mdates定位器在图表中显示不存在的时间间隔

如何在信号的FFT中获得正确的频率幅值

如何训练每一个pandaprame行的线性回归并生成斜率

ModuleNotFoundError:Python中没有名为google的模块''

如何防止html代码出现在quarto gfm报告中的pandas表之上

极点用特定值替换前n行

查找数据帧的给定列中是否存在特定值

将时间序列附加到数据帧

在Django REST框架中定义的URL获得404分