Сортировка набора данных по оси с помощью dask

#sorting #dask #python-xarray #dask-delayed

#сортировка #dask #python-xarray #dask-задержка

Вопрос:

Я хочу отсортировать набор данных (файл netcdf) по измерению времени для каждого года, а затем усреднить их. Проблема в том, что dask поддерживает только сортировку «topk», которая потребляет всю память, если включает весь диапазон значений. Xarray поддерживает сортировку только одномерных массивов. Сортировка Numpy выполняет эту работу, но она также потребляет память. Есть ли какой-либо способ отсортировать весь большой набор данных по некоторой оси с помощью dask, чтобы уменьшить объем памяти?

Комментарии:

1. Я пытаюсь применить xarray.apply_ufunc к объекту groupby с распараллеливанием dask, но получаю сообщение об ошибке, что мне нужно указать output_dtypes (которые я указал). Я делаю что-то не так или apply ufunc не поддерживает объекты groupby? код: xarray.apply_ufunc(numpy.sort, dataset.groupby('time.year'), 0, dask='parallelized', output_dtypes=[numpy.float64]) . Ошибка: ValueError: output dtypes (output_dtypes) must be supplied to apply_func when using dask='parallelized'