想象一下,时间序列在12月底/1月初周期性地达到峰值。序列的最大值将具有如下dt1
或{
问题是,对于dt1
(211)和dt2
(356),一个正常的平均值会给出非常不同的结果。原因很明显是dt1
的一些元素在1月份,因此相应的doy非常小,从而导致平均值下降。在
我最初是用另一个月作为原点来计算DOYs,但这给新原点周围的其他时间序列带来了问题。在
这一问题是否有一个全年通用的解决办法?在
dt1 = [datetime(2000, 12, 15), datetime(2001, 12, 16), datetime(2002,12,20), datetime(2004,1,2) , datetime(2005,1,1)]
dt2 = [datetime(2000, 12, 15), datetime(2001, 12, 16), datetime(2002,12,20), datetime(2003,12,31), datetime(2004,12,30)]
doys1 = np.array([dt.timetuple().tm_yday for dt in dt1])
doys2 = np.array([dt.timetuple().tm_yday for dt in dt2])
print doys1.mean()
print doys2.mean()
谢谢!在
经过一点谷歌搜索,我发现你要找的是一种计算mean of circular quantities的方法。更多的google发现这是在^{} library 中实现的。我找到它要感谢this answer,但是我在尝试找到关于函数本身的一些适当的文档时失败了,并返回到检查source code以找出应该如何调用它。在
相关问题 更多 >
编程相关推荐