尽管在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),但我真的不知道。在
在this question之后,我做了一些研究,在^{} library 中找到了
circmean
函数。 考虑到您正在使用numpy
库,我认为scipy
库中的正确实现应该适合您的需要。在正如我对上述问题的回答中所指出的,我还没有找到该函数的任何文档,但是检查它的source code可以发现应该如何正确地调用它:
这可能对您没有任何用处,因为您在发布问题后一段时间过去了,并且考虑到您已经自己实现了该功能,但我希望它可能会有助于将来与同一问题斗争的读者。在
相关问题 更多 >
编程相关推荐