scipy.special.seterr¶
- scipy.special.seterr()¶
设置特殊功能错误的处理方式。
- 参数
- all{‘忽略’,‘警告’‘提升’},可选
一次设置对所有类型的特殊功能错误的处理。选项包括:
“忽略”在错误发生时不执行任何操作
“警告”打印为
SpecialFunctionWarning
发生错误时(通过Pythonwarnings
模块)“加薪”加薪a
SpecialFunctionError
当错误发生时。
默认情况下不更改当前行为。如果指定了其他类别的特殊功能错误的行为,则
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)