xarray - 根据另一个变量的条件计算一个变量

xarray - computation on one variable based on condition of anther variable

使用 Python 3.6.5 和 xarray 0.12.1,我创建了一个名为 ds_merge 的数据集,其中两个名为 v1v2 的变量合并在一起。

我需要根据 v2.

的值对 v1 进行计算
print(ds_merge)

<xarray.Dataset>
Dimensions:  (x: 2, y: 3)
Coordinates:
  * x        (x) <U1 'a' 'b'
  * y        (y) <U1 'A' 'B' 'C'
Data variables:
    v1       (x, y) float64 0.8332 0.09855 1.477 0.6563 -0.1991 -0.9999
    v2       (x, y) bool True True True True False False

我想实现的是只在v2True的情况下,将v1乘以10,这样ds_merge就是:

<xarray.Dataset>
Dimensions:  (x: 2, y: 3)
Coordinates:
  * x        (x) <U1 'a' 'b'
  * y        (y) <U1 'A' 'B' 'C'
Data variables:
    v1       (x, y) float64 8.332 0.9855 14.77 6.563 -0.1991 -0.9999
    v2       (x, y) bool True True True True False False

xarray 似乎不支持 2-dim 布尔索引。但是 numpy 可以,所以你可以这样做:


ds_merge['v1'].values[ds_merge['v2'].values] *= 10