Среднее вычитание пятен у питона - PullRequest
1 голос
/ 06 августа 2011

У меня есть массив массивов 3 измерения, это сетка патчей из 8x8 изображений.

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

patches=- patches.mean(axis = 2).mean(axis = 1)

Я думал об использовании функции повтора, что-то вроде:

patches=- np.repeat(np.repeat(patches.mean(axis =2).mean(axis =1).reshape((n_patches, 8, 8)), 1, 1))

Put Я думаю, что следующееэтот маршрут приведет к неэффективному решению.Есть мысли или решение по этому поводу?

Ответы [ 2 ]

3 голосов
/ 06 августа 2011
import numpy as np
a = np.random.rand(10,8,8)
mean = a.mean(axis=2).mean(axis=1)
b = a - mean[:, np.newaxis, np.newaxis] # reshape the mean as (10, 1, 1)
1 голос
/ 06 августа 2011

Я думаю, что вы ищете для вещания:

http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html

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