查找生成NaN的计算

Chi*_*chi 8 python debugging numpy nan scipy

我有一个中等大片(几千行)的Python/Numpy/Scipy代码,它会抛出带有某些输入的NaN.我寻找并找到了一些常见的嫌疑人(log(0)等等),但在这种情况下,没有一个明显的嫌疑人似乎是罪魁祸首.

是否有一种相对无痛的方式(即,除了在每个潜在的罪魁祸首周围设置异常处理代码之外),找出这些NaN的来源?

NPE*_*NPE 9

我会先说numpy.seterr.

在那里,无效操作被定义为"结果不是可表达的数字,通常表示产生了NaN".默认情况下,这似乎设置为"忽略".