scipy.special.
seterr#
- scipy.special.seterr(**kwargs)#
设置如何处理特殊函数错误。
- 参数:
- all{‘ignore’, ‘warn’ ‘raise’}, 可选
一次性设置所有类型特殊函数错误的错误处理方式。选项包括
‘ignore’ 发生错误时不采取任何操作
‘warn’ 发生错误时打印
SpecialFunctionWarning
(通过 Pythonwarnings
模块)‘raise’ 发生错误时引发
SpecialFunctionError
。
默认情况下不更改当前行为。 如果指定了其他特殊函数错误类别的行为,则先应用
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)