XArray多维布尔索引

时间:2019-09-20 21:23:01

标签: python numpy python-xarray

考虑XArray DataArray:

df2 = df.mask(pd.isnull, lambda x: (x,x.name))
print(f'\n{df2.to_string()}')

我们假设我们有一个数据数组维数较低的蒙版:

DA=xr.DataArray(np.random.rand(3,4,5)) (3x5遮罩)

现在,我想将蒙版中的所有元素提取到一个numpy向量中,对该向量进行处理,然后将结果粘贴回DataArray中。

mask=DA.mean(dim='dim_1')>.5(看起来很直观)返回 DA[mask]

IndexError: 2-dimensional boolean indexing is not supported.允许将未选择的元素设置为nan,但这与提取向量不同。

numpy多维布尔索引(xr.where)在这里不起作用,因为尺寸不匹配。

我发现的唯一解决方案是以这种笨拙的方式扩展蒙版:

DA.values[mask.values]

(我使用字符串'masked'而不是nan来避免在屏蔽之前与DA中存在的潜在nan值进行交互)

有没有更自然的方法来实现这一目标?

0 个答案:

没有答案