在 python 的 netcdf 中用 0 替换 inf 值

replace inf values with 0 in netcdf in python

我可以像这样使用 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.

Numpy 的 isfinite 捕获了 np.infnp.nan

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

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