从Numpy1.7开始,已经有了原生的日期-时间支持,基本类型称为datetime64。
In [1]: import numpy as np In [2]: nd = np.datetime64('2018-05-08') In [3]: nd Out[3]: numpy.datetime64('2018-05-08')
和datetime一样,datetime64对象可以表示为字符串对象。
In [4]: np.datetime_as_string(nd) Out[4]: '2018-05-08'
每个这类对象都保存在元数据,可以通过date_time_date方法访问,两个主要的组成部分是频率信息和单位(D:天)。
In [5]: np.datetime_data(nd) Out[5]: ('D', 1)
从datetime对象中构造datetime64对象:
In [7]: d = datetime.datetime(2018,7,31,12,16,30,500000) In [8]: d Out[8]: datetime.datetime(2018, 7, 31, 12, 16, 30, 500000) In [10]: ng = np.datetime64(d) In [11]: ng Out[11]: numpy.datetime64('2018-07-31T12:16:30.500000')
同样,可以将datetime64对象转换成datetime对象:
In [12]: nd.astype(datetime.datetime) Out[12]: datetime.date(2018, 5, 8) In [13]: nd.astype(datetime.date) Out[13]: datetime.date(2018, 5, 8)
另外还有另外一种不常见的datetime64的构造方法:(提供一个字符串解和频率信息)
In [15]: nh = np.datetime64('2015-10','D') In [16]: nh Out[16]: numpy.datetime64('2015-10-01')
使用arange函数生成一个日期范围,当然可以指定日期范围
In [17]: np.array(['2015-10-01','2015-10-05','2015-10-10'],dtype='datetime64') Out[17]: array(['2015-10-01', '2015-10-05