xarray - вычисление по одной переменной на основе условия другой переменной - PullRequest
0 голосов
/ 07 мая 2019

В 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 на 10 только при условии v2, равном True, так что 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 Ответ

1 голос
/ 07 мая 2019

Похоже, xarray не поддерживает 2-мерное логическое индексирование.Но NumPy делает, так что вы можете просто сделать:


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

...