【发布时间】:2019-05-30 14:53:05
【问题描述】:
我有一个 numpy 数组,其中包含一长串日期时间。我想知道有没有一种方法可以在不使用 for 循环的情况下一次为数组的所有值添加一年?例如。使用一些 numpy 或 datetime 模块?
>>> import datetime
>>> import numpy as np
>>> dts.shape
(64580,)
>>> dts[:5]
array([datetime.date(2000, 1, 15), datetime.date(2000, 1, 15),
datetime.date(2000, 1, 15), datetime.date(2000, 1, 15),
datetime.date(2000, 1, 15)], dtype=object)
>>> new_dts = somemodule.somefunctionforaddingyearorsomething(dts, year=1)
>>> new_dts
array([datetime.date(2001, 1, 15), datetime.date(2001, 1, 15),
datetime.date(2001, 1, 15), datetime.date(2001, 1, 15),
datetime.date(2001, 1, 15)], dtype=object)
注意:每个日期的天数始终设置为第 15 天,因为日期代表每月平均数据。
我已经使用 for 循环实现了它,但是这在计算上可能很慢..
代码在这里:
def add_year_to_Datelist(dl):
dts = dl.dates.copy()
for idx, date in enumerate(dts):
dts[idx] = date.replace(year=date.year + 1)
dl.set_dates(dts)
return dl
干杯
【问题讨论】:
标签: python python-2.7 numpy datetime numpy-ndarray