numpy.errstate#
- class numpy.errstate(**kwargs)[源代码]#
浮点数错误处理的上下文管理器。
使用
errstate的实例作为上下文管理器,可以使该上下文中的语句以已知的错误处理行为执行。进入上下文时,使用seterr和seterrcall设置错误处理,退出时则会恢复到之前的状态。版本 1.17.0 中已更改:
errstate也可用作函数装饰器,从而节省了整个函数被包装时的缩进级别。版本 2.0 中已更改:
errstate现在完全支持线程和 asyncio 安全,但不能被进入两次。使用errstate装饰异步函数是不安全的。- 参数:
- kwargs{divide, over, under, invalid}
关键字参数。有效的关键字是可能的浮点数异常。每个关键字都应有一个字符串值,定义对特定错误的对待方式。可能的值包括 {‘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)将 self 作为函数调用。