📜  日期数组python(1)

📅  最后修改于: 2023-12-03 15:26:18.402000             🧑  作者: Mango

日期数组 Python

在 Python 编程中,我们通常需要处理日期和时间数据。日期数组是一种重要的数据类型,用于存储日期和时间数据。

Python 中的日期数组

Python 提供了许多用于处理日期和时间数据的库和模块。其中,最常用的是 datetime 模块。datetime 模块中包含了 date、time 和 datetime 类,它们都支持日期和时间运算。

date 类

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 类

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 类

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'
NumPy 中的日期数组

除了 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 中的日期数组都提供了日期和时间处理的功能,具有不同的特点和用途。使用日期数组可以提高数据处理的效率和准确性,同时也能提高程序的可读性和稳定性。