引言
本章我们学习Numpy数据类型的时间日期(datetime64)和时间增量(timedelta64)
在 numpy 中,我们很方便的将字符串转换成时间日期类型 datetime64
(datetime
已被 python 包含的日期时间库所占用)。
datatime64
是带单位的日期时间类型,其单位如下:
日期单位 | 代码含义 | 时间单位 | 代码含义 |
---|---|---|---|
Y | 年 | h | 小时 |
M | 月 | m | 分钟 |
W | 周 | s | 秒 |
D | 天 | ms | 毫秒 |
- | - | us | 微秒 |
- | - | ns | 纳秒 |
- | - | ps | 皮秒 |
- | - | fs | 飞秒 |
- | - | as | 阿托秒 |
秒、毫秒、微bai秒、纳秒、皮秒、飞秒、阿托秒每两级之du间的换算进率为1000。
其中1阿秒等于光飞越3粒氢阿子的时间。
比例上,一阿秒之于一秒,如同一秒之于 317.1 亿年,约为宇宙年龄的两倍。
1、datetime64的使用:
【例1-1】datetime64的使用 自动选择对应单位
>>>import numpy as np
>>>a = np.datetime64('2020-10')
>>>print(a,a.dtype)
2020-10 datetime64[M]
>>>b = np.datetime64('2020-10-20')
>>>print(b,b.dtype)
2020-10-20 datetime64[D]
>>>c = np.datetime64('2020-10-20 19')
>>>print(c,c.dtype)
2020-10-20T19 datetime64[h]
>>>d = np.datetime64('2020-10-20 19:37')
>>>print(d,d.dtype)
2020-10-20T19:37 datetime64[m]
>>>e = np.datetime64('2020-10-20 19:37:21')
>>>print(e,e.dtype)
2020-10-20T19:37:21 datetime64[s]
...
【例1-2】datetime64的使用 指定使用的单位
在这里,只用一个例子说明:
>>>a = np.datetime64('2020-10', 'D')
>>>print(a)
2020-10-01
我们再来判断一下‘2020-10’和‘2020-10-01’的关系:
>>>import numpy as np
>>>print(np.datetime64('2020-10') == np.datetime64('2020-10-01'))
True
由上例可以看出,2020-10 和 2020-10-01 所表示的其实是同一个时间。
事实上,如果两个 datetime64 对象具有不同的单位,它们可能仍然代表相同的时刻。并且从较大的单位(如月份)转换为较小的单位(如天数)是安全的。
【例1-3】字符串创建日期时间数组(详尽效应)
>>>import numpy as np
>>>a = np.array(['2020-10', '2020-10-20', '2020-10-20 20:00'], dtype