如何获取numpy的"RuntimeWarning: multiply中遇到无效值"错误的详细信息
有没有办法让numpy在错误信息上提供更详细的内容呢?
比如说这个警告:“运行时警告:在乘法中遇到了无效值”。
这个警告是因为我在代码中的某一行做了一些数组操作时出现的。请问我能不能让numpy报告:
(1) 关于这个无效值的更多信息(是无穷大还是不是数字?)
(2) 是哪个数组的元素导致了这个问题?
当然,我可以自己检查数组,但如果numpy能直接告诉我问题是什么以及在哪里,那就太好了。
1 个回答
8
你可以通过使用 numpy.seterrcall
(配合 numpy.seterr
,具体用法可以参考链接)来获取更多关于错误类型的信息。至于想找出是哪个数组出了问题,这可能不太容易,因为 numpy
会自动生成一些临时数组。
a = b + (c*d)
# ^This creates a temporary array before adding it to `a`
当然,如果你想知道代码中是哪一行出错,可以使用 seterr
来抛出异常,而不是仅仅发出警告。