能否使用numpy.arange生成间隔1年且月日固定的日期数组
用numpy.arange生成固定年间隔且月日一致的日期数组
可以通过np.arange实现该需求,且无需额外处理闰年逻辑即可保证所有生成日期的月日完全一致,使用numpy原生的datetime64类型与年粒度时间步长即可。
实现代码
import numpy as np # 生成1985-07-01至2015-07-01前、间隔1年的日期数组 yearly_date_arr = np.arange( np.datetime64('1985-07-01'), np.datetime64('2015-07-01'), np.timedelta64(1, 'Y') ).astype('datetime64[D]')
如果需要适配原有逻辑使用Python原生datetime类型,只需在上述代码后追加.tolist(),即可得到原生datetime对象组成的序列,可直接替换原有方案中的整数类型使用。
原方案问题说明
你之前使用relativedelta(days=365)作为步长的方案,是固定按365天的时长偏移,遇到闰年时会比实际日历年短1天,最终导致日期的月日向前偏移,无法保持一致。numpy原生的年粒度时间步长会直接对齐日历维度的年日期,天然规避了闰年的影响。
内容的提问来源于stack exchange,提问作者J. Chapman
相关产品推荐
相关产品推荐

