2011-08-05 3 views
1

3 차원의 배열이 numpy이고, 8x8 이미지의 패치 그리드입니다.python nympy scipy에서 패치의 평균 빼기

각 패치의 평균을 빼는 가장 좋은 방법은 무엇입니까? 즉, 각 패치마다 고유 한 평균이 있으며이를 뺍니다. 나는 반복 기능을 사용하여 생각

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)) 

넣어 나는이 경로를 다음과 같은 것이 될 것이라고 생각 비효율적 인 솔루션으로 이것에 대한 어떤 생각이나 해결책?

답변

3
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)