Недавно пришлось освоить питон и сделать небольшой пакет для обработки данных, выдаваемых одной численной моделью. Данные 4х-мерные (долгота/широта/глубина/время). Мне очень удобно, чтоб при любых операциях массив данных всегда оставался 4х-мерным. Но в numpy, при индексировании массива скаляром, его размерность уменьшается. Например,
a.shape
(T,Z,Y,X)
a[:,N,:,:].shape
(T,Y,X)
Нехорошо это. Индексы надо передавать в функции, которые читают срезы данных из набора файлов. Пока нaшёл один способ бороться с этим: перед передачей функции-читалке, проверять индексы на скалярность, и конвертировать скаляры в slice. Т.е.
a[:,N:N+1,:,:].shape
(T,1,Y,X)
Это то что надо. Но есть ли более правильный метод решения данной проблемы?