在python的netcdf中将inf值替换为0

在python的netcdf中将inf值替换为0,python,netcdf,python-xarray,Python,Netcdf,Python Xarray,我可以使用xarray替换NetCDF中的nan值,如下所示: hndl_nc = hndl_nc.fillna(0.0) 有没有办法将inf值也替换为0?尝试以下方法: def replace_inf_with_zero(dataset): for varname in dataset.data_vars.keys(): array = hndl_nc[varname] array[array == np.inf] = 0. 尝试以下方法: def

我可以使用xarray替换NetCDF中的nan值,如下所示:

hndl_nc = hndl_nc.fillna(0.0)
有没有办法将inf值也替换为0?

尝试以下方法:

def replace_inf_with_zero(dataset):
    for varname in dataset.data_vars.keys():
        array = hndl_nc[varname]
        array[array == np.inf] = 0.
尝试以下方法:

def replace_inf_with_zero(dataset):
    for varname in dataset.data_vars.keys():
        array = hndl_nc[varname]
        array[array == np.inf] = 0.

Numpy的
isfinite
捕获了
np.inf
np.nan

hndl_nc.where(hndl_nc.apply(np.isfinite)).fillna(0.0)

请注意,xarray的下一个版本(0.10)将允许您直接在
where方法中指定填充值。

Numpy的
isfinite
捕获
np.inf
np.nan

hndl_nc.where(hndl_nc.apply(np.isfinite)).fillna(0.0)
请注意,xarray的下一个版本(0.10)将允许您直接在
where方法中指定填充值