我有一个 xarray 数据集。我想复制它,使其具有与原件相同的尺寸/坐标/形状。这很简单。
import xarray as xr
n_segs = 4
n_dates = 5
num_vars = 4
dims = (n_segs, n_dates)
das = [xr.DataArray(np.random.rand(*dims), dims=['seg_id', 'date'])
for i in range(num_vars)]
ds_orig = xr.Dataset({'a': das[0], 'b': das[1], 'c': das[2], 'd': das[3]})
ds_copy = ds_orig.copy(deep=True)
然后我想为副本中的所有值分配一个常量值(假设为 1)。我已经想出如何做到这一点where:
ds_copy.where(ds_copy == np.nan, other=1)
但这假设我的价值观都不会是nan而且有点违反直觉的海事组织。有没有更稳健的方法?
我想我也可以循环遍历数据变量(这是对 Pandas 的建议)... :
for v in ds_copy.data_vars:
ds_copy[v].loc[:, :] = 1
也许我在这里寻找的是一种replace方法。
达令说
相关分类