numpy:计算某个区域的平均值

时间:2011-10-06 07:22:23

标签: numpy scipy average

有没有办法计算某个bbox中的平均值。困难在于bbox也可能包含浮点值,因此必须对框值的边界进行加权。每个单元格的中心都有整数值(边是x.5)。

样品:

[[ 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,针对此问题的任何想法/解决方案?

非常感谢你。

1 个答案:

答案 0 :(得分: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)