numpy.errstate#
- class numpy.errstate(**kwargs)[源代码]#
用于浮点错误处理的上下文管理器.
使用
errstate
实例作为上下文管理器允许在该上下文中执行的语句以已知的错误处理行为执行.进入上下文时,错误处理通过seterr
和seterrcall
设置,退出时重置为之前的状态.在 1.17.0 版本发生变更:
errstate
也可以用作函数装饰器,如果整个函数被包装,可以节省一层缩进.在 2.0 版本发生变更:
errstate
现在完全线程和 asyncio 安全,但可能不能进入超过一次.使用errstate
装饰异步函数是不安全的.- 参数:
- kwargs{除法, 超过, 不足, 无效}
关键字参数.有效关键字是可能的浮点异常.每个关键字应有一个字符串值,定义对特定错误的处理.可能的值有 {‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}.
参见
备注
有关浮点异常类型和处理选项的完整文档,请参见
seterr
.示例
>>> import numpy as np >>> olderr = np.seterr(all='ignore') # Set error handling to known state.
>>> np.arange(3) / 0. array([nan, inf, inf]) >>> with np.errstate(divide='ignore'): ... np.arange(3) / 0. array([nan, inf, inf])
>>> np.sqrt(-1) np.float64(nan) >>> with np.errstate(invalid='raise'): ... np.sqrt(-1) Traceback (most recent call last): File "<stdin>", line 2, in <module> FloatingPointError: invalid value encountered in sqrt
在上下文之外,错误处理行为没有改变:
>>> np.geterr() {'divide': 'ignore', 'over': 'ignore', 'under': 'ignore', 'invalid': 'ignore'} >>> olderr = np.seterr(**olderr) # restore original state
方法
__call__
(func)作为函数调用自身.