Как изменить отдельные записи в xarray.DataArray с помощью sel? - PullRequest
0 голосов
/ 24 января 2020

У меня есть данные внутри xarray.DataArray, которыми я хочу манипулировать, однако, ему не удается изменить отдельные записи в DataArray.

Пример:

import numpy as np
import xarray as xr
data = np.random.rand(2,2)
times = [1998,1999]
locations = ['It','Be']

A = xr.DataArray(data, coords = [times, locations], dims = [time, space])

это дает мне массив данных. Теперь я хочу установить запись для (1998, 'It') вручную на 5, но следующее не работает:

A.sel(time = 1998, space = 'It').values = 5

, ни это не работает:

A.sel(time = 1998, space = 'It').values = array(5)

данные остается как есть. Однако, как ни странно, хорошо получается следующее:

A.sel(time = 1998).values[0] = 5

Не могли бы вы объяснить мне логику c, стоящую за этим?

1 Ответ

0 голосов
/ 24 января 2020

Назначение Xarray не позволяет вам присваивать значения массивам, используя sel или isel. Это описано в документации здесь . Для вашего приложения вы, вероятно, захотите использовать .loc propoerty:

A.loc[dict(time=1998, space='It')] = 5

Также можно использовать DataArray.where для замены значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...