我正在运行以下代码
positive_values = values.where(values > 0)
在这个例子中,
values
可能包含nan
元素。我认为,由于这个原因,我得到了下面的运行时警告:RuntimeWarning: invalid value encountered in greater_equal if not reflexive
xarray
是否有抑制这些警告的方法?
我正在运行以下代码
positive_values = values.where(values > 0)
values
可能包含nan
元素。我认为,由于这个原因,我得到了下面的运行时警告:RuntimeWarning: invalid value encountered in greater_equal if not reflexive
xarray
是否有抑制这些警告的方法?
warnings
模块提供了您所需的功能。
要禁止所有警告,请执行以下操作(有关此做法不好的原因,请参见John Coleman 的答案):
import warnings
warnings.simplefilter("ignore")
# warnings.simplefilter("ignore", category=RuntimeWarning) # for RuntimeWarning only
warnings.catch_warnings()
上下文管理器中执行它:import warnings
with warnings.catch_warnings():
warnings.simplefilter("ignore")
positive_values = values.where(values > 0)
import warnings;warnings.simplefilter("ignore", category=RuntimeWarning)
。这将会抑制所有 RuntimeWarnings。正如 @JohnColeman 所指出的,这不是一个好的做法。这些警告存在是有原因的。我特别警告不要全局抑制警告,因为你不知道会错过哪些警告。 - Steven Rumbalski一般来说,警告信息应该被重视而不是被抑制。你要么知道警告信息的原因,要么不知道。如果你知道警告信息的原因,通常有一个简单的解决方法。如果你不知道警告信息的原因,很可能是一个 bug。在这种情况下,你可以使用 &
的短路特性,如下所示:
positive_values = values.where(values.notnull() & values > 0)
positive_values = values.where(values.notnull & values > 0)
? - John Coleman