У меня есть трехмерный xarray DataArray, где два измерения представляют сетку x-y, а третье - количество слоев сетки, «сложенных» друг на друга. Пустой массив данных выглядит следующим образом:
import xarray as xr
import numpy as np
data = np.zeros(shape=(layers,y,x))
dims=['layer','y_Axis', 'x_Axsis']
dataArray = xr.DataArray(data,dims=dims)
Внутри подпрограммы я заполняю сетки слоями, значениями от -1 до 1.
Моя задача теперь состоит в том, чтобы объединить все слои в один, выбирая самые высокие значения всех сеток вместе взятых. Поэтому, когда, например, 5 слоев сравниваются друг с другом, самые высокие элементы в сетке будут сохранены в двумерном массиве.
Я мог бы решить эту проблему, просматривая каждый слой, сравнивая значения сетки текущего слоя с созданной 2d max_val_grid и, таким образом, фильтруя третье измерение. Однако это звучит очень неэффективно.
Кто-нибудь из вас знает, как решить эту проблему, используя внутренние функции xarray или numpy без циклов?
Большое спасибо!