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

numpy:计算某一区域的平均值,numpy,scipy,average,Numpy,Scipy,Average,有没有办法计算某个bbox内的平均值。困难在于bbox还可能包含浮点值,因此必须对box值的边界进行加权。每个单元格的中心都有整数值(边为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 av

有没有办法计算某个bbox内的平均值。困难在于bbox还可能包含浮点值,因此必须对box值的边界进行加权。每个单元格的中心都有整数值(边为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来解决这个问题,有什么想法/解决方案吗


非常感谢。

我不清楚您的问题,但您似乎希望格式化一个权重数组,并将其与要平均的数据数组一起传递给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)

我不清楚您的问题,但看起来您希望格式化一个权重数组,并将其与要平均的数据数组一起传递给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)

你能再详细解释一下吗?例如,第五行中的0.25是从哪里来的?你能更详细地解释一下吗?例如,第五行的0.25从哪里来?