📅  最后修改于: 2023-12-03 15:26:18.402000             🧑  作者: Mango
在 Python 编程中,我们通常需要处理日期和时间数据。日期数组是一种重要的数据类型,用于存储日期和时间数据。
Python 提供了许多用于处理日期和时间数据的库和模块。其中,最常用的是 datetime 模块。datetime 模块中包含了 date、time 和 datetime 类,它们都支持日期和时间运算。
date 类用于表示日期对象,它包含了年、月和日三个属性。常用的操作有日期相加减、格式化输出和判断是否为闰年等。
from datetime import date
# 创建日期对象
d = date(2022, 10, 1)
print(d) # 2022-10-01
# 日期相加减
delta = timedelta(days=1)
new_d = d + delta
print(new_d) # 2022-10-02
# 日期格式化输出
print(d.strftime('%Y-%m-%d')) # '2022-10-01'
# 判断是否为闰年
print(d.year % 4 == 0 and d.year % 100 != 0 or d.year % 400 == 0) # True
time 类用于表示时间对象,它包含了时、分、秒和微秒四个属性。常用的操作有时间相加减、获取当前时间和时间格式化输出等。
from datetime import time
# 创建时间对象
t = time(13, 30, 0, 500000)
print(t) # 13:30:00.500000
# 时间相加减
delta = timedelta(hours=1, minutes=30)
new_t = (datetime.combine(date.today(), t) + delta).time()
print(new_t) # 15:00:00
# 获取当前时间
now = datetime.now().time()
print(now) # 当前时间
# 时间格式化输出
print(t.strftime('%H:%M:%S.%f')) # '13:30:00.500000'
datetime 类用于表示日期时间对象,它包含了日期和时间两个属性。它继承了 date 类和 time 类的属性和方法,同时还支持日期时间相加减、日期时间格式化输出等操作。
from datetime import datetime
# 创建日期时间对象
dt = datetime(2022, 10, 1, 13, 30, 0, 500000)
print(dt) # 2022-10-01 13:30:00.500000
# 日期时间相加减
delta = timedelta(days=1, hours=1, minutes=30)
new_dt = dt + delta
print(new_dt) # 2022-10-02 15:00:00.500000
# 日期时间格式化输出
print(dt.strftime('%Y-%m-%d %H:%M:%S.%f')) # '2022-10-01 13:30:00.500000'
除了 datetime 模块外,NumPy 也提供了日期数组的支持。在 NumPy 中,日期数组被表示为 datetime64 类型的数组,其精度可以是年、月、日、时、分、秒和微秒。
要创建一个日期数组,可以使用 numpy.datetime64() 函数,并指定日期和时间的格式以及数组长度。
import numpy as np
# 创建日期数组
date_arr = np.array(['2022-10-01', '2022-10-02', '2022-10-03'], dtype='datetime64')
print(date_arr) # ['2022-10-01' '2022-10-02' '2022-10-03']
可以使用下标、切片和布尔索引等方式访问日期数组的元素。
# 索引日期数组
print(date_arr[0]) # '2022-10-01'
# 切片日期数组
print(date_arr[1:]) # ['2022-10-02' '2022-10-03']
# 布尔索引日期数组
print(date_arr[date_arr > np.datetime64('2022-10-01')]) # ['2022-10-02' '2022-10-03']
日期数组支持日期相加减和日期时间差运算等。
# 日期相加减
new_date_arr = date_arr + np.timedelta64(1, 'D')
print(new_date_arr) # ['2022-10-02' '2022-10-03' '2022-10-04']
# 日期时间差运算
diff = np.datetime64('2022-10-04') - np.datetime64('2022-10-01')
print(diff) # 3 days
日期数组在 Python 编程中是一个非常常用的数据类型,可以用于存储和处理日期和时间数据。Python 中的 datetime 模块和 NumPy 中的日期数组都提供了日期和时间处理的功能,具有不同的特点和用途。使用日期数组可以提高数据处理的效率和准确性,同时也能提高程序的可读性和稳定性。