scipy.special.

seterr#

scipy.special.seterr(**kwargs)#

设置特殊函数错误的M处理方式。

参数:
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’}, 可选

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

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

未知错误的处理方式。

返回:
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)