008.Numpy日期时间和增量

008.Numpy日期时间和增量

1.Datetime64

  • 从NumPy 1.7开始,数组数据类型本身开始支持日期时间功能,称为 “datetime64”

2.日期单位和时间单位

在这里插入图片描述

3.日期单位的创建

3.1字符串方式

  • 以日为单位
  • 以月为单位
  • 以日为单位,时间为月,进行强制类型转换
  • 日期单位+时间单位
  • nat的创建形式
    在这里插入图片描述
    在这里插入图片描述

3.2 使用函数的创建方式

在这里插入图片描述

4. 安全投射

在这里插入图片描述

5.Timedelta64

  • NumPy允许减去两个Datetime值,这个操作产生一个带有时间单位的数字。
  • 由于NumPy的核心没有物理量系统,因此创建了timedelta64数据类型以补充datetime64。
  • timedelta64的参数是一个数字,用于表示单位数,以及日期/时间单位
  • 如 (D)ay, (M)onth, (Y)ear, (h)ours, (m)inutes, 或者 (s)econds。timedelta64数据类型也接受字符串“NAT”代替“非时间”值的数字。

5.1 使用方法

在这里插入图片描述

  • 使用timedelta64的时候需要注意:
    在这里插入图片描述
    在这里插入图片描述

6.DataTime函数

6.1 busday

在这里插入图片描述

6.2 busday_offset

在这里插入图片描述
查看日历:2011-6-25为星期六,2011-6-26为星期六
在这里插入图片描述

  • 对于roll=‘backward’ and roll='forward’的区别:
    • 区别在非工作日上
      • 如果起点是非工作日
        1. 当offset为0时,roll='backward’选择以前最近的工作日;roll='forward’选择未来最近的工作日
          在这里插入图片描述
      1. 当offset大于0时,roll='backward’选择未来的最近工作日+(offset-1);roll=’forward’选择未来最近的工作日+offset 如果遇到非工作日,还是照常跳过
        在这里插入图片描述
        在这里插入图片描述
      • 如果起点是工作日,roll='backward’和roll='forward’得到的答案是一样的
        在这里插入图片描述

6.3 is_busy()

  • 要测试datetime64值以查看它是否为有效日期
>>> np.is_busday(np.datetime64('2011-07-15'))  # a Friday
True
>>> np.is_busday(np.datetime64('2011-07-16')) # a Saturday
False
>>> np.is_busday(np.datetime64('2011-07-16'), weekmask="Sat Sun")
True
>>> a = np.arange(np.datetime64('2011-07-11'), np.datetime64('2011-07-18'))
>>> np.is_busday(a)
array([ True,  True,  True,  True,  True, False, False], dtype='bool')

6.4 busday_count()

要查找指定日期范围内有效天数

>>> np.busday_count(np.datetime64('2011-07-11'), np.datetime64('2011-07-18'))
5
>>> np.busday_count(np.datetime64('2011-07-18'), np.datetime64('2011-07-11'))
-5
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值