gpt4 book ai didi

python - 捕获我在计算中得到 NaN 的那一刻

转载 作者:行者123 更新时间:2023-11-30 23:20:28 25 4
gpt4 key购买 nike

我正在使用线性回归运行循环,并进行计算,结果常常是无穷大。当我检查变量输出时,我注意到当我开始收到“NaN”时,事情会崩溃。我尝试了很多不同的方法来处理无穷大,但我的程序仍然最终崩溃。我已经做过诸如用非常大或非常小的值替换 NaN 之类的事情,但现在我认为这没有用。我不应该平等对待所有 NaN - 显然有些 NaN 是在玩正无穷时出现的,而有些是在玩负无穷时出现的。

我真的需要知道我的代码到底在哪一点突然产生 NaN,以及产生它的是负无穷大还是正无穷大。在程序崩溃之前我怎样才能做到这一点?

编辑

我知道如何检查 NaN。我可以简单地使用 numpy.isnan ,并且我已经使用了它。但我想知道它何时发生。是否有异常或发生时可以调用或抛出警告的东西?

最佳答案

如果您想使用 numpy 捕获数字异常,最好的选择可能是使用 numpy.seterr :

例如,要引发无效操作的异常(导致NaN):

import numpy as np

np.seterr(invalid='raise')
np.float64(0)/0.

在控制台上生成显示:

Traceback (most recent call last):
File "h.py", line 4, in <module>
np.float64(0)/0.
FloatingPointError: invalid value encountered in double_scalars

关于python - 捕获我在计算中得到 NaN 的那一刻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25505489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com