scipy.special.

seterr#

scipy.special.seterr(**kwargs)#

设置如何处理特殊函数错误。

参数:
**kwargs

以下参数可作为关键字参数传递

all{‘ignore’, ‘warn’ ‘raise’}, 可选

一次性设置所有类型特殊函数错误的处理方式。选项包括:

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

singular{‘ignore’, ‘warn’, ‘raise’}, 可选

针对奇异点的处理方式。

underflow{‘ignore’, ‘warn’, ‘raise’}, 可选

针对下溢的处理方式。

overflow{‘ignore’, ‘warn’, ‘raise’}, 可选

针对上溢的处理方式。

slow{‘ignore’, ‘warn’, ‘raise’}, 可选

针对收敛缓慢的处理方式。

loss{‘ignore’, ‘warn’, ‘raise’}, 可选

针对精度损失的处理方式。

no_result{‘ignore’, ‘warn’, ‘raise’}, 可选

针对无法得出结果时的处理方式。

domain{‘ignore’, ‘warn’, ‘raise’}, 可选

针对函数无效参数的处理方式。

arg{‘ignore’, ‘warn’, ‘raise’}, 可选

针对函数无效参数(parameter)的处理方式。

other{‘ignore’, ‘warn’, ‘raise’}, 可选

针对未知错误的处理方式。

返回:
olderr字典

包含旧设置的字典。

另请参阅

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)