numpy.errstate#
- class numpy.errstate(**kwargs)[source]#
- 浮点错误处理的上下文管理器。 - 使用 - 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)- 将自身作为函数调用。