Как рассчитать среднее значение переменной в определенный день года за несколько лет?Python

Программы на Python
Anonymous
Как рассчитать среднее значение переменной в определенный день года за несколько лет?

Сообщение Anonymous »

У меня есть массив данных xarray, который содержит ежедневные данные за каждый день с 1970 по 2023 год за октябрь-март месяцев, и я хочу вычислить среднее значение переменной для каждого дня (например, среднее значение за все 1 января).
Мои данные такие:

Код: Выделить всё

 Size: 5GB
dask.array
Coordinates:
number          int64 8B 0
pressure_level  float64 8B 500.0
* latitude        (latitude) float64 3kB 0.0 -0.25 -0.5 ... -79.5 -79.75 -80.0
* longitude       (longitude) float64 3kB -100.0 -99.75 -99.5 ... -10.25 -10.0
* valid_time      (valid_time) datetime64[ns] 80kB 1970-01-01 ... 2023-12-31
Я пробовал использовать groupby, но мне удалось сгруппировать данные только по месяцу или по дню (т. е. все первые числа месяца независимо от месяца), но не по обоим. Я могу перегруппировать каждую из этих групп, но уверен, что есть более элегантное решение.
Перегруппировка групп выглядит следующим образом:

Код: Выделить всё

da.groupby('valid_time.month')[1].groupby('valid_time.day')[1]
Это привело бы к 1 января, и технически я мог бы сделать это на все дни.
Я также пробовал что-то вроде этого поста,

Код: Выделить всё

da.groupby(da.index.strftime('%m-%d')).mean()
но я понял сообщение

Код: Выделить всё

AttributeError: 'DataArray' object has no attribute 'index'
Желаемый результат должен иметь какую-то форму (D, широта, долгота), где D — количество дней между 1 октября и 31 марта (без всех удаленных 29 февраля).

Вернуться в «Python»