сумма по диапазону бина в питоне - PullRequest
1 голос
/ 14 апреля 2011

У меня есть пустой массив с формой:

In: imar.shape 
Out: (21, 77, 10000)

Я хочу получить сумму в двоичном виде по последней оси, где каждый бин содержит 20 элементов.сейчас это:

np.sum(  imar.reshape([-1,500,20]), axis=2 ).reshape(imar.shape[:2])

Это быстро, но кажется подверженным ошибкам, если я получаю аргументы, чтобы изменить форму неправильно.Есть ли лучший способ сделать это?

Я смотрел на np.digitize, гистограмму, bincount и некоторые другие, но они основаны на значениях;Я хочу сумму по набору диапазонов.

1 Ответ

1 голос
/ 14 апреля 2011

У вас правильный подход. Я задал похожий вопрос некоторое время назад:

Как эффективно обработать массив пустых блоков в блоках, аналогичных функции Matlab blkproc (blockproc)

Существует несколько подходов к изменению формы. Если вы осторожны и напишите функцию для этого, у вас все будет хорошо. Конечно, вы должны быть уверены, что вы урезаете входную матрицу, если она не кратна размеру вашего блока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...