我正在尋找從 列表中獲取一年中某一天的值的數組datetimes。例如,我可以使用方法獲取周數isocalendar。但是一年中的整數天的方法是什么?使用 pandas 這是dayofyear,但是如何使用該包獲得它datetime?from datetime import timedelta, datetimeimport numpy as npimport pandas as pdfrom dateutil.relativedelta import *datetimes = np.arange( datetime(2012,1,1), datetime(2017,1,1), timedelta(days=1) ).astype(datetime)week_value_by_day = np.array([datetime.isocalendar()[1] for datetime in datetimes])在一天結束時,我想要一個使用此代碼的數組np.array([datetime.<something> for datetime in datetimes]),其中<something>給我一年中的整數天并產生 array([1, 2, 3, 4, 5, 6..365]).
2 回答

動漫人物
TA貢獻1815條經驗 獲得超10個贊
嘗試使用 strftime:
np.array([int(i.strftime("%j")) for i in datetimes])
然而,
np.array([datetime.timetuple().tm_yday for datetime in datetimes])
有效并且速度更快。

慕妹3146593
TA貢獻1820條經驗 獲得超9個贊
以下是日期之間天數的簡短示例,僅使用 Python 內置日期時間模塊:
import datetime
dates = [
? ? datetime.date(2019, 12, 30), datetime.date(2019, 12, 31),
? ? datetime.date(2020, 1, 1),? ?datetime.date(2020, 1, 2)
]
for d in dates:
? ? base_date = d.replace(month=1, day=1)
? ? days_between = (d - base_date) / datetime.timedelta(days=1)
? ? print(base_date, d, days_between)
2019-01-01 2019-12-30 363.0
2019-01-01 2019-12-31 364.0
2020-01-01 2020-01-01 0.0
2020-01-01 2020-01-02 1.0
days_between如果您想要基于 1 的索引,則需要添加 1 (在此示例中,1 月 1 日是“第 0 天”)。
添加回答
舉報
0/150
提交
取消