计算色调角的平均值

2024-10-02 12:28:48 发布

您现在位置:Python中文网/ 问答频道 /正文

尽管在SO上有相关的问题(例如this one),但我一直在努力解决这个问题。在

def circmean(arr):
    arr = np.deg2rad(arr)
    return np.rad2deg(np.arctan2(np.mean(np.sin(arr)),np.mean(np.cos(arr))))

但我得到的结果没有意义!我经常得到负值,例如:

^{pr2}$

我不知道是(a)我的函数不正确,(b)我使用的方法不正确,或者(c)我只需要对负值进行转换(加360度?)。我的研究表明问题不在于(a),而且我见过实现(例如here)与我自己的实现相匹配,所以我倾向于(c),但我真的不知道。在


Tags: returnsodefnpsincosmeanthis
1条回答
网友
1楼 · 发布于 2024-10-02 12:28:48

this question之后,我做了一些研究,在^{} library中找到了circmean函数。 考虑到您正在使用numpy库,我认为scipy库中的正确实现应该适合您的需要。在

正如我对上述问题的回答中所指出的,我还没有找到该函数的任何文档,但是检查它的source code可以发现应该如何正确地调用它:

>>> import numpy as np
>>> from scipy import stats
>>> 
>>> test = np.array([323.64,161.29])
>>> stats.circmean(test, high=360)
242.46499999999995
>>> 
>>> test = np.array([5, 350])
>>> stats.circmean(test, high=360)
357.49999999999994

这可能对您没有任何用处,因为您在发布问题后一段时间过去了,并且考虑到您已经自己实现了该功能,但我希望它可能会有助于将来与同一问题斗争的读者。在

相关问题 更多 >

    热门问题