получить дату для xarray прокатки мин. или макс. - PullRequest
0 голосов
/ 27 мая 2020

Набрав foo.rolling(time=100).mean(), вы получите среднее значение за текущий период в 100 дней. Я хотел бы найти минимальное и максимальное значения за эти 100 дней. Легко с foo.rolling(time=100).min()

Однако как я могу узнать точный день этого минимума и максимума? Я хочу знать, какие даты минимальный и максимальный периоды в течение этого скользящего 100-дневного окна. Или мне нужно будет написать свою функцию для этого?

num=4000
data = np.random.rand(num, 3)
locs = ['one', 'two', 'three']
times = pd.date_range('2000-01-01', periods=num)
foo = xr.DataArray(data, coords=[times, locs], dims=['time', 'space'])

foo.rolling(time=100).max()
foo.rolling(time=100).min()

Спасибо

Ответы [ 2 ]

0 голосов
/ 08 июня 2020

Один из способов сделать это - использовать DataArrayRolling.construct для явного создания оконных представлений foo и time DataArrays. Например, в случае argmin:

windowed_foo = foo.rolling(time=100).construct("window_dim")
windowed_times = foo.time.rolling(time=100).construct("window_dim")
indexes = windowed_foo.argmin("window_dim")
result = windowed_times.isel(window_dim=indexes)
0 голосов
/ 29 мая 2020

Не могли бы вы использовать argmin с rolling(...).reduce, а затем использовать эти значения для выбора дат в скользящем окне.

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