>>> from scipy.special import erf
>>> print (erf(0.j))
__main__:1: RuntimeWarning: invalid value encountered in erf
0j
这个警告只打印一次(即使我这样做scipy.special.errprint(0)
了),但我不明白为什么要打印它。真的,0.j
是相同的数字0.
,它没有问题。
我想有两个问题:1)有没有办法抑制这个警告?2)这个警告是一个错误,还是我错过了什么?
更新
我(想我)在 scipy 源代码树中追踪了错误函数。它位于:scipy/special/specfun/specfun.f
( subroutine CERROR
)。此函数不会引发警告(从简单的 fortran 程序调用时它工作正常)。