在R中,我可以创建一个包含日期的向量,如下所示:
# R
library(lubridate)
fivedays = today() - 1:5
它给出:
Output:
> fivedays
[1] "2020-07-26" "2020-07-25" "2020-07-24" "2020-07-23" "2020-07-22"
在python中,实现类似结果的最有效方法是什么?
我尝试过这样做:
# python
import datetime
oneday = datetime.date.today() - datetime.timedelta(days = 1)
以上仅适用于一天。下面是一个pseude代码,我希望它能工作。
# python
import datetime
fivedays = datetime.date.today() - datetime.timedelta(days = [x for x in range(1,6)])
# Above fails with following error
# TypeError: unsupported type for timedelta days component: list
像下面这样的列表理解可能是最接近于"矢量";问题中的语法。
today = datetime.date.today()
fivedays = [today - datetime.timedelta(days=x) for x in range(5)]
您也可以使用numpy
模块:
import numpy as np
fivedays = np.datetime64('today') - np.arange(1, 6)