2011-10-06 143 views
1

是否有計算某個bbox內平均值的方法。難點在於bbox也可能包含浮點值,因此必須對框值的邊界進行加權。每個單元格的中心都有整數值(邊是x.5)。numpy:計算某個區域內的平均值

樣品:

[[ 1., 1., 1.], 
[ 1., 1., 1.], 
[ 1., 1., 1.]] 

bbox = minx: -0.5, miny: -0.5, maxx: 1, maxy: 1 
values = 1*1 + 0.5*1 + 0.5*1 + 0.25*2 
weights = 1 + 0.5 + 0.5 + 0.25 
average = values/weights = 1.1111... 

我無法弄清楚如何與numpy.average做到這一點對於這個問題,任何想法/解決方案?

非常感謝您提前。

+0

你能詳細解釋一下嗎?例如,0.25從哪裏來的第五行? –

回答

1

你的問題我不清楚,但它看起來像你想被格式化權重的數組並把它傳遞給np.average()函數與數據的陣列一起要平均,如:

import numpy as np 

values = np.array([[1, 1, 1], 
        [2, 2, 2], 
        [3, 3, 3]]) 

valueweights = np.array([[1, 1, 1], 
         [0.5, 0.5, 0.5], 
         [0.25, 0.25, 0.25]]) 

average = np.average(values, weights=valueweights)