NumPy - 使用时间增量
在 NumPy 中处理时间增量
时间增量表示两个日期时间对象之间的差异,在处理基于时间的数据时非常有用。
在 NumPy 中,时间增量使用 timedelta64 数据类型处理,该类型允许您执行涉及日期和时间差异的各种操作。
本章将探讨如何在 NumPy 中处理时间增量,包括创建时间增量、执行算术运算以及使用它们来操作日期时间对象。
使用 NumPy 创建时间增量
在 NumPy 中,时间增量由 timedelta64 数据类型表示。您可以通过指定时长和单位(例如,天、小时、分钟)来创建时间增量。
时间增量可用于计算两个日期时间对象之间的差值,或对日期时间进行加/减运算。
示例
在此示例中,我们将创建一个 5 天 10 小时的时间增量 -
import numpy as np # 创建 5 天 10 小时的时间增量 time_delta = np.timedelta64(5, 'D') + np.timedelta64(10, 'h') print("Time Delta:", time_delta)
输出将以天数和小时数的组合形式显示时间增量 -
时间增量:130 小时
向 DateTime 对象添加时间增量
可以在 DateTime 对象中添加或减去时间增量来调整日期或时间。当您想要将时间戳偏移特定时长时,例如在特定日期上增加天数或减少小时数,这非常有用。
示例
在此示例中,我们将向特定日期添加 5 天 10 小时的时间增量 -
import numpy as np # 创建一个 datetime 对象 start_date = np.datetime64('2024-01-01') # 创建一个 5 天 10 小时的时间增量 time_delta = np.timedelta64(5, 'D') + np.timedelta64(10, 'h') # 将时间增量添加到开始日期 new_date = start_date + time_delta print("新日期:", new_date)
输出将显示添加时间增量后的新日期 -
新日期:2024-01-06T10
从 DateTime 中减去时间增量
就像您可以向 datetime 对象添加时间增量一样,您也可以减去它们以将日期时间向后移动。减去时间增量通常用于计算过去的日期或时间。
示例
在此示例中,我们将从特定日期中减去 5 天 10 小时的时间增量 -
import numpy as np # 创建一个 datetime 对象 start_date = np.datetime64('2024-01-06T10:00') # 创建一个 5 天 10 小时的时间增量 time_delta = np.timedelta64(5, 'D') + np.timedelta64(10, 'h') # 从起始日期中减去时间增量 new_date = start_date - time_delta print("减法后的新日期:", new_date)
输出结果为显示减去时间差后的新日期 -
减法后的新日期:2024-01-01T00:00
比较日期时间与时间增量
您可以比较已修改的日期时间对象与时间增量。这允许您检查一个日期时间是在另一个日期时间之前还是之后,或者在给定时间差的情况下,两个日期时间对象是否相同。
示例
在此示例中,我们将比较两个具有不同时间差的日期时间对象,以确定其中一个是否早于另一个 -
import numpy as np # 创建两个日期时间对象 date1 = np.datetime64('2024-01-01') date2 = np.datetime64('2024-01-05') # 创建一个 5 天的时间差 time_delta = np.timedelta64(5, 'D') # 检查添加时间差后 date1 是否早于 date2 new_date1 = date1 + time_delta print("Is date1 + time_delta 是否早于 date2?,new_date1 < date2)
输出将显示新的 date1 是否早于 date2 -
date1 + time_delta 是否早于 date2?否
时间增量运算
时间增量支持加、减、乘、除等算术运算。您可以通过将时间增量乘以整数来缩放时间增量,或者将其除以标量以获得更小的时间单位。
示例
在此示例中,我们将时间增量乘以 2,然后除以 2,以查看最终的时间增量 -
import numpy as np # 创建一个 5 天的时间增量 time_delta = np.timedelta64(5, 'D') # 将时间增量乘以 2 double_delta = time_delta * 2 # 将时间增量除以 2 half_delta = time_delta / 2 print("原始时间增量:", time_delta) print("时间增量 * 2:", double_delta) print("时间增量 / 2:", half_delta)
输出将显示乘法和除法之后的时间增量 -
原始时间增量:5 天 时间增量 * 2:10 天 时间增量 / 2:2 天