📜  Python| numpy.datetime64() 方法(1)

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

Python | numpy.datetime64() 方法

numpy.datetime64() 是 numpy 库中用于处理时间日期的方法,它允许我们将时间日期精确到纳秒级别,支持多种日期格式。本文将详细介绍 numpy.datetime64() 的使用方法。

语法

numpy.datetime64(date, fmt=None)

参数说明:

  • date : 时间日期的字符串或者日期对象。
  • fmt : 时间日期的格式字符串,如果不提供则默认为 ISO 8601 格式。

返回值:

  • 如果 date 是字符串,返回 numpy.datetime64 类型的时间日期对象。
  • 如果 date 是日期对象,返回与 date 相同类型的 numpy.datetime64 对象。
示例
将字符串转换为 numpy.datetime64
import numpy as np

# 转换为默认 ISO 8601 格式
date_str = "2022-07-31 12:30:45"
dt1 = np.datetime64(date_str)
print(dt1)  # 2022-07-31T12:30:45

# 转换为指定格式,需要提供 fmt 参数
date_str2 = "2022/07/31 12:30:45"
dt2 = np.datetime64(date_str2, fmt="%Y/%m/%d %H:%M:%S")
print(dt2)  # 2022-07-31T12:30:45

# 支持更高的精度,精度可达纳秒级
date_str3 = "2022-07-31 12:30:45.123456789"
dt3 = np.datetime64(date_str3)
print(dt3)  # 2022-07-31T12:30:45.123456789
将日期对象转换为 numpy.datetime64
import datetime
import numpy as np

# 使用 datetime.date() 方法创建日期对象
date_obj = datetime.date(2022, 7, 31)
dt1 = np.datetime64(date_obj)
print(dt1)  # 2022-07-31

# 使用 datetime.datetime() 方法创建日期时间对象
datetime_obj = datetime.datetime(2022, 7, 31, 12, 30, 45)
dt2 = np.datetime64(datetime_obj)
print(dt2)  # 2022-07-31T12:30:45
numpy.datetime64 常用操作

numpy.datetime64 支持以下常用操作:

  • 创建一个时间范围: np.arange(start, stop, step, dtype='datetime64')
  • 计算时间差: np.datetime64(datetime1) - np.datetime64(datetime2)
import numpy as np

# 创建一个时间范围
rng = np.arange('2022-07-01', '2022-08-01', np.timedelta64(1, 'D'), dtype='datetime64')
print(rng)
# [datetime64('2022-07-01') datetime64('2022-07-02') datetime64('2022-07-03')
#  datetime64('2022-07-04') datetime64('2022-07-05') datetime64('2022-07-06')
#  datetime64('2022-07-07') datetime64('2022-07-08') datetime64('2022-07-09')
#  datetime64('2022-07-10') datetime64('2022-07-11') datetime64('2022-07-12')
#  datetime64('2022-07-13') datetime64('2022-07-14') datetime64('2022-07-15')
#  datetime64('2022-07-16') datetime64('2022-07-17') datetime64('2022-07-18')
#  datetime64('2022-07-19') datetime64('2022-07-20') datetime64('2022-07-21')
#  datetime64('2022-07-22') datetime64('2022-07-23') datetime64('2022-07-24')
#  datetime64('2022-07-25') datetime64('2022-07-26') datetime64('2022-07-27')
#  datetime64('2022-07-28') datetime64('2022-07-29') datetime64('2022-07-30')]


# 计算时间差
dt1 = np.datetime64('2022-07-31 12:30:45')
dt2 = np.datetime64('2022-07-31 11:30:45')
print(dt1 - dt2)  # 3600000000 nanoseconds = 1 hour
总结

numpy.datetime64() 是一个用于处理时间日期的强大方法,支持多种日期格式和高精度精度计算。在实际项目中,我们通常需要处理时间日期数据,numpy.datetime64() 可以方便地完成相关任务,提升代码效率。