2011-08-05 22 views
1

我有一個3維的numpy數組,它是一個8x8圖像的補丁網格。蟒蛇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)