scipy.special.seterr

scipy.special.seterr()

设置特殊功能错误的处理方式。

参数
all{‘忽略’,‘警告’‘提升’},可选

一次设置对所有类型的特殊功能错误的处理。选项包括:

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

singular{‘忽略’,‘警告’,‘提升’},可选

奇点的处理。

underflow{‘忽略’,‘警告’,‘提升’},可选

下溢的处理。

overflow{‘忽略’,‘警告’,‘提升’},可选

溢流处理。

slow{‘忽略’,‘警告’,‘提升’},可选

收敛缓慢的治疗。

loss{‘忽略’,‘警告’,‘提升’},可选

精确度损失的处理。

no_result{‘忽略’,‘警告’,‘提升’},可选

找不到结果的治疗。

domain{‘忽略’,‘警告’,‘提升’},可选

处理函数的无效参数。

arg{‘忽略’,‘警告’,‘提升’},可选

处理函数的无效参数。

other{‘忽略’,‘警告’,‘提升’},可选

对未知错误的处理。

退货
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)