抑制 python-xarray 的警告

Con*_*nic 4 python suppress-warnings python-3.x python-xarray

我正在运行以下代码

positive_values = values.where(values > 0)  
Run Code Online (Sandbox Code Playgroud)

在这个例子中values可能包含nan元素。我相信由于这个原因,我收到以下运行时警告:

RuntimeWarning: invalid value encountered in greater_equal if not reflexive  
Run Code Online (Sandbox Code Playgroud)

是否xarray有抑制这些警告的方法?

Ste*_*ski 5

warnings模块提供了您正在寻找的功能。

要抑制所有警告(请参阅John Coleman 的回答,了解为什么这不是一个好习惯):

import warnings
warnings.simplefilter("ignore") 
# warnings.simplefilter("ignore", category=RuntimeWarning) # for RuntimeWarning only
Run Code Online (Sandbox Code Playgroud)

要使抑制暂时在warnings.catch_warnings()上下文管理器中执行:

import warnings

with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    positive_values = values.where(values > 0)  
Run Code Online (Sandbox Code Playgroud)

上下文管理器在进入上下文之前保存原始警告设置,然后在退出上下文时将它们重新设置。