使用Python 3.6.5和xarray 0.12.1,我创建了一个名为ds_merge
的数据集,并将两个名为v1
和v2
的变量合并在一起。
我需要基于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
我要实现的是仅在v1
为v2
的情况下将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
答案 0 :(得分:1)
似乎xarray不支持2维布尔索引。但是numpy可以,所以您可以这样做:
ds_merge['v1'].values[ds_merge['v2'].values] *= 10