角度的加权平均值

Chr*_*ris 4 python algorithm mean

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

这个问题中,有一个如何计算平均值的答案,如本页所示。

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

0.25、0度 0.5、20度 0.25、90度

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

Chr*_*ris 5

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

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
Run Code Online (Sandbox Code Playgroud)

似乎工作正常。我必须想到好的测试数据。

  • 你必须检查 (x,y) = (0,0),在这种情况下平均方向没有定义 (2认同)