xarray-根据花药变量的条件对一个变量进行计算

时间:2019-05-06 22:20:26

标签: python-3.x numpy python-xarray

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

我需要基于v1的值对v2进行计算。

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

我要实现的是仅在v1v2的情况下将True乘以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

1 个答案:

答案 0 :(得分:1)

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


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