抑制 python-xarray 的警告
Suppress warnings for python-xarray
我是运行下面的代码
positive_values = values.where(values > 0)
在此示例中,values
可能包含 nan
个元素。我相信由于这个原因,我收到了以下运行时警告:
RuntimeWarning: invalid value encountered in greater_equal if not reflexive
xarray
是否有抑制这些警告的方法?
warnings
模块提供了您正在寻找的功能。
要抑制所有警告,请执行以下操作(请参阅 为什么这不是一个好的做法):
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)
上下文管理器在进入上下文之前保存原始警告设置,然后在退出上下文时将它们设置回来。
根据一般的经验法则,应该注意警告而不是压制警告。您要么知道导致警告的原因,要么不知道。如果您知道导致警告的原因,通常有一个简单的解决方法。如果您不知道导致警告的原因,则可能存在错误。在这种情况下,您可以使用 &
的短路性质,如下所示:
positive_values = values.where(values.notnull() & values > 0)
我是运行下面的代码
positive_values = values.where(values > 0)
在此示例中,values
可能包含 nan
个元素。我相信由于这个原因,我收到了以下运行时警告:
RuntimeWarning: invalid value encountered in greater_equal if not reflexive
xarray
是否有抑制这些警告的方法?
warnings
模块提供了您正在寻找的功能。
要抑制所有警告,请执行以下操作(请参阅
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)
上下文管理器在进入上下文之前保存原始警告设置,然后在退出上下文时将它们设置回来。
根据一般的经验法则,应该注意警告而不是压制警告。您要么知道导致警告的原因,要么不知道。如果您知道导致警告的原因,通常有一个简单的解决方法。如果您不知道导致警告的原因,则可能存在错误。在这种情况下,您可以使用 &
的短路性质,如下所示:
positive_values = values.where(values.notnull() & values > 0)