LINUX.ORG.RU

[python, numpy] индексирование массива


0

1

Недавно пришлось освоить питон и сделать небольшой пакет для обработки данных, выдаваемых одной численной моделью. Данные 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)

Это то что надо. Но есть ли более правильный метод решения данной проблемы?

★★☆

> Но есть ли более правильный метод решения данной проблемы?

Слишком заумно задаешь вопрос.

Могу порекомендовать книги Романа Сузи и Дэвида Бизли.

pacify ★★★★★
()
Ответ на: комментарий от pacify

> Слишком заумно задаешь вопрос.

Попробую короче.

[code] a[N:N+1] [/code]

вместо

[code] a[N] [/code]

Это единственный способ избежать уменьшения размерности массива в numpy при индексировании?

Могу порекомендовать книги Романа Сузи и Дэвида Бизли.

У них есть названия?

yvv ★★☆
() автор топика
Ответ на: комментарий от yvv

NumPy я еще не изучал.

Книга первая, автор - Роман Сузи. Называется «Python», издательство «БХВ-Петербург», 2002 год издания, не переиздавалась (Роман Сузи отвечал мне в письме, что издательство не подавало ему заявку на переиздание). Достать ее в электронном виде, по-моему, сложно - я не нашел. Вместо нее находится какой-то суррогат издательства «Интуит» (написанный тоже Романом Сузи).

Книга вторая, автор - Дэвид Бизли, называется «Python: подробный справочник», изд-во «Символ», 4-е издание, 2010 год. В Интернете можно найти в электронном виде - на books.ru продается электронная копия за 350 рублей. На мой взгляд, первое издание ~2001 года было намного лучше (и тоньше раза в три). В Интернете можно найти также третье издание на англ., «Python Essential Reference».

pacify ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.