scipy.special.
seterr#
- scipy.special.seterr(**kwargs)#
设置如何处理特殊函数错误。
- 参数:
- **kwargs
以下参数可作为关键字参数传递
- all{‘ignore’, ‘warn’ ‘raise’}, 可选
一次性设置所有类型特殊函数错误的处理方式。选项包括:
‘ignore’ 错误发生时不采取任何操作
‘warn’ 错误发生时打印一个
SpecialFunctionWarning(通过 Python 的warnings模块)‘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’}, 可选
针对函数无效参数(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)