如何获取更详细的错误信息numpy为"运行时警告:在乘法中遇到无效值"错误

Ant*_*Bak 9 python runtime-error numpy

有没有办法从numpy获取更详细的错误消息

"运行时警告:在乘法中遇到无效值"

它来自代码中的某一行,我正在做一些数组操作.我可以报告numpy:

(1)关于无效值的更多信息(inf?nan?)

(2)导致问题的数组条目?

当然我可以自己检查数组但如果numpy可以告诉我问题是什么以及在哪里会很好.

mgi*_*son 8

您至少可以通过numpy.seterrcall(与numpy.seterr链接中所示相结合)获得有关错误类型的更多信息.至于找出哪个数组给出问题,这可能是不可能的,因为numpy必然会创建临时数组:

a = b + (c*d)
#       ^This creates a temporary array before adding it to `a`
Run Code Online (Sandbox Code Playgroud)

当然,seterr如果您想知道代码中哪个行号是违规的,您可以用来引发异常而不是警告.

  • 我使用np.seterr(all ='raise')来退出代码中的那一点. (9认同)