如何解决是否可以使用 numpy 的 arange 函数来创建以 1 年为间隔递增的日期数组?
使用 numpy.arange
创建以 1 天为间隔增加的日期数组很简单,可以使用代码实现
np.arange(datetime(1985,7,1),datetime(2015,relativedelta(days=1)).astype(datetime)
但是,我需要一组以 1 年为间隔增加的日期。为此,我不能使用
np.arange(datetime(1985,relativedelta(days=365)).astype(datetime)
因为这不考虑闰年,所以我需要日期的日期和月份在所有条件下都保持不变。
有没有办法使用 np.arange 实现这一点?
我希望使用 numpy.arrange,因为我希望使用 @Mustafa Aydın 对我之前的问题 (https://stackoverflow.com/a/68032151/10346788) 的回答,但使用日期而不是整数。
解决方法
在 datetime64
中只指定年和月,并将间隔设置为 1 年。例如,要生成从 1985 年到 2015 年 3 月 10 日的所有日期
np.arange(np.datetime64("1985-03"),np.datetime64("2015-03"),np.timedelta64(1,"Y")) +np.timedelta64("9","D")
array(['1985-03-10','1986-03-10','1987-03-10','1988-03-10','1989-03-10','1990-03-10','1991-03-10','1992-03-10','1993-03-10','1994-03-10','1995-03-10','1996-03-10','1997-03-10','1998-03-10','1999-03-10','2000-03-10','2001-03-10','2002-03-10','2003-03-10','2004-03-10','2005-03-10','2006-03-10','2007-03-10','2008-03-10','2009-03-10','2010-03-10','2011-03-10','2012-03-10','2013-03-10','2014-03-10'],dtype='datetime64[D]'
,
试试
np.array([datetime(i,7,1) for i in range(1985,2015+1)])
编辑:或者就像一个普通列表 - 如果它不必是一个 numpy 数组:
[datetime(i,2015+1)]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。