Мне нужно разрезать тот же элемент в массиве 3D numpy (фактически замаскированный массив, но работает так же). Я обычно делаю это с итерациями - однако текущие данные настолько огромны, что необходимо повторить процесс для тысяч наборов данных - это займет недели (грубая оценка). Каков самый быстрый способ разрезать 3D-массив без цикла по всем 2D-массивам?
В этом простом примере мне нужно разрезать [1, 0]
элемент в каждом 2D-массиве, который равен 3
во всех 2D-массивах, и сохранить их в массиве result
.
Пример NetCDF (элемент среза [500, 400])
import netCDF4
url = "http://eip.ceh.ac.uk/thredds/dodsC/public-chess/PET/aggregation/PETAggregation.ncml"
dataset = netCDF4.Dataset(url)
result = dataset.variables['pet'][:, 500, 400]
myarray ЗАМЕНЯЕТСЯ НА ВЫШЕ
myarray = np.array([
[[1, 2], [3, 4], [5, 6]],
[[1, 2], [3, 4], [5, 6]],
[[1, 2], [3, 4], [5, 6]],
[[1, 2], [3, 4], [5, 6]],
])
result = []
for i in myarray:
result.append(i[1][0])
результат [3, 3, 3, 3]
РЕДАКТИРОВАТЬ FirefoxMetzger предложил просто нарезать его с помощью result = myarray[:, 1, 0]
. Однако я получаю следующее сообщение об ошибке:
RuntimeError: NetCDF: ошибка сервера DAP