scipy.special.

seterr#

scipy.special.seterr(**kwargs)#

设置如何处理特殊功能错误。

参数:
全部{‘ignore’, ‘warn’ ‘raise’}, 可选

一次性设置所有类型的特殊功能错误的处理方式。选项有:

默认情况下,不会改变当前的行为。如果为特殊功能错误的其他类别指定了行为,那么首先应用 all ,然后是其他类别。

单数{‘忽略’, ‘警告’, ‘引发’}, 可选

奇点的处理。

下溢{‘忽略’, ‘警告’, ‘引发’}, 可选

处理下溢。

溢出{‘忽略’, ‘警告’, ‘引发’}, 可选

溢出处理。

{‘忽略’, ‘警告’, ‘引发’}, 可选

处理缓慢收敛问题。

损失{‘忽略’, ‘警告’, ‘引发’}, 可选

精度损失的处理。

无结果{‘忽略’, ‘警告’, ‘引发’}, 可选

处理未找到结果的情况。

领域{‘忽略’, ‘警告’, ‘引发’}, 可选

处理函数中无效参数的情况。

参数{‘忽略’, ‘警告’, ‘引发’}, 可选

处理函数中无效的参数。

其他{‘忽略’, ‘警告’, ‘引发’}, 可选

处理未知错误。

返回:
olderrdict

包含旧设置的字典。

参见

geterr

获取当前处理特殊功能错误的方式

errstate

特殊函数错误处理的上下文管理器

numpy.seterr

用于浮点数错误的类似 numpy 函数

示例

>>> import scipy.special as sc
>>> from pytest import raises
>>> sc.gammaln(0)
inf
>>> olderr = sc.seterr(singular='raise')
>>> with raises(sc.SpecialFunctionError):
...     sc.gammaln(0)
...
>>> _ = sc.seterr(**olderr)

我们也可以为除一个类别外的所有类别引发异常。

>>> olderr = sc.seterr(all='raise', singular='ignore')
>>> sc.gammaln(0)
inf
>>> with raises(sc.SpecialFunctionError):
...     sc.spence(-1)
...
>>> _ = sc.seterr(**olderr)