numpy.errstate¶
- class
numpy.
errstate
(**kwargs)[source]¶ 浮点错误处理的上下文管理器。
使用
errstate
的实例作为上下文管理器允许在该上下文中的语句以已知的错误处理行为执行。在进入上下文时,错误处理用seterr
和seterrcall
设置,并且在退出时将其重置为之前的状态。参数: kwargs:{divide,over,under,invalid}
关键字参数。有效的关键字是可能的浮点异常。每个关键字都应该有一个字符串值来定义特定错误的处理。可能的值为{'ignore','warn','raise','call','print','log'}。
也可以看看
笔记
with
语句在Python 2.5中引入,只能通过导入使用:从 __ future __ import with_statement
。在早期的Python版本中,with
语句不可用。有关浮点异常和处理选项类型的完整文档,请参见
seterr
。例子
>>> from __future__ import with_statement # use 'with' in Python 2.5 >>> olderr = np.seterr(all='ignore') # Set error handling to known state.
>>> np.arange(3) / 0. array([ NaN, Inf, Inf]) >>> with np.errstate(divide='warn'): ... np.arange(3) / 0. ... __main__:2: RuntimeWarning: divide by zero encountered in divide array([ NaN, Inf, Inf])
>>> np.sqrt(-1) 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() {'over': 'warn', 'divide': 'warn', 'invalid': 'warn', 'under': 'ignore'}