numpy.datetime64()日期函数

Basic Datetimes

创建数据时间的最基本的方法是使用ISO 8601日期或日期时间格式的字符串。内部存储单元是从字符串的形式自动选择的,可以是date unit或time unit。

日期单位是年(‘Y’),月(‘M’),星期(‘W’)和日(‘D’),而时间单位是小时),秒(‘s’),毫秒(‘ms’)和一些附加的基于秒前缀的单位。

简单的ISO日期:

>>> np.datetime64('2005-02-25')
numpy.datetime64('2005-02-25')

str(np.datetime64('2005-02-25'))
#'2005-02-25'

使用月份为单位:

>>> np.datetime64('2005-02')
numpy.datetime64('2005-02')

仅指定月份,但强制使用“天”单位:

>>> np.datetime64('2005-02', 'D')
numpy.datetime64('2005-02-01')

从字符串创建数据集的数组时,仍然可以使用带有通用单位的日期时间类型从输入中自动选择单位。

>>> np.array(['2007-07-13', '2006-01-13', '2010-08-13'], dtype='datetime64')
array(['2007-07-13', '2006-01-13', '2010-08-13'], dtype='datetime64[D]')

datetime类型适用于许多常见的NumPy函数,例如arange可用于生成日期范围。

所有日期一个月:
指定格式dtype='datetime64[D]'

Z = np.arange('2016-07', '2016-08', dtype='datetime64[D]')

'''
array(['2016-07-01', '2016-07-02', '2016-07-03', '2016-07-04',
       '2016-07-05', '2016-07-06', '2016-07-07', '2016-07-08',
       '2016-07-09', '2016-07-10', '2016-07-11', '2016-07-12',
       '2016-07-13', '2016-07-14', '2016-07-15', '2016-07-16',
       '2016-07-17', '2016-07-18', '2016-07-19', '2016-07-20',
       '2016-07-21', '2016-07-22', '2016-07-23', '2016-07-24',
       '2016-07-25', '2016-07-26', '2016-07-27', '2016-07-28',
       '2016-07-29', '2016-07-30', '2016-07-31'], dtype='datetime64[D]')
'''

Datetime and Timedelta Arithmetic

NumPy允许减去两个日期时间值,一个产生具有时间单位的数字的操作。由于NumPy在其核心中没有物理量系统,因此创建了timedelta64数据类型以补充datetime64。
Datetimes和Timedeltas一起工作,为简单的日期时间计算提供方法。

>>> np.datetime64('2009-01-01') - np.datetime64('2008-01-01')
#numpy.timedelta64(366,'D')

str(np.datetime64('2009-01-01') - np.datetime64('2008-01-01'))
'366 days'

str(np.datetime64('2009-01-01') - np.datetime64('2008-01-01')).split(" ")[0]
#'366'
>>> np.datetime64('2009') + np.timedelta64(20, 'D')
numpy.datetime64('2009-01-21')

Business Day Functionality

为了允许在仅一周中的某些天有效的上下文中使用datetime,NumPy包括一组“busday”(工作日)函数。

Datetimes and Timedeltas:http://doc.codingdict.com/NumPy_v111/reference/arrays.datetime.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章