加权平均角度

时间:2009-11-06 11:23:46

标签: python algorithm mean

我想计算一组角度的加权平均值。

this Question中,有一个答案如何计算均值 如this page所示。

现在我想弄清楚如何计算加权平均值。 也就是说,对于每个角度,存在权重(权重总和为1)

0.25,0度 0.5,20度 0.25,90度

加权平均应该(如果我没有犯错)是32度。

2 个答案:

答案 0 :(得分:4)

好的,我的尝试是将值乘以权重:

def circular_mean(weights, angles):
    x = y = 0.
    for angle, weight in zip(angles, weights):
        x += math.cos(math.radians(angle)) * weight
        y += math.sin(math.radians(angle)) * weight

    mean = math.degrees(math.atan2(y, x))
    return mean

Ir SEEMS 工作正常。我必须考虑良好测试数据。

答案 1 :(得分:1)

根据您的应用,问题有不同的答案。如上所述,您可能需要标准化您的值,您可能需要签名角度,或者您可能不希望。除非你知道角度生成函数是什么,否则可能没有一个独特的答案。

对我来说这是一个足够的问题(在几何学中工作)我编写了自己的Angle类。