numpy.errstate#

class numpy.errstate(**kwargs)[源代码]#

用于浮点数错误处理的上下文管理器.

使用 errstate 的实例作为上下文管理器允许该上下文中的语句以已知的错误处理行为执行.进入上下文时,使用 seterrseterrcall 设置错误处理,退出时,将其重置为之前的状态.

在 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 作为函数调用.