您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

有哪些可能导致Python出现NaN的计算?

有哪些可能导致Python出现NaN的计算?

如果您在不使用浮点环境的情况下执行以下任何一项操作,则应该得到一个NaN,而您以前没有使用过NaN:

机器算术这些方面的规范参考是IEEE 754规范。第7.1节描述了无效的操作异常,这是您将要获得NaN时引发的异常。IEEE 754中的“异常”意味着与编程语言上下文不同。

许多特殊的函数实现以其尝试实现的功能的奇异点来记录其行为。对于参见手册页atan2log,例如。

您是在专门询问NumPy和SciPy。我不确定这是说“我正在询问有关NumPy幕后发生的机器算术”还是“我正在询问有关eig()内容”。我假设是前者,但是此答案的其余部分试图与NumPy中的更高级别函数建立模糊的联系。基本规则是:

例如fft,对于,NaN如果输入值约为1e1010或大于,则很容易获得;如果输入值约为1e-1010或小于,则有可能导致精度的无声损失。但是,除了真正可笑的扩展输入之外,您还可以放心使用fft

对于涉及矩阵数学的事情,inf - inf如果您的人数众多 矩阵病情严重,NaN可能会出现(通常是通过路线)。关于如何通过数值线性代数进行运算的完整讨论太长了,无法解决。我建议在几个月的时间里翻阅一本数字线性代数书(Trefethen和Bau很流行)。

在编写和调试“不应”生成NaN的代码时,我发现有用的一件事是告诉计算机捕获是否发生NaN。在GNU C中,我这样做:

#include <fenv.h>
feenableexcept(FE_INVALID);
python 2022/1/1 18:36:22 有537人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶