我怎样才能使python numpy的日期时间范围
我有一些输入数据,输入文件中的时间戳以从文件名中指定的日期时间开始的小时数形式出现。
这有点没用,所以我需要将其转换为python
datetime.datetime对象,然后将其放入numpy数组中。我可以编写一个for循环,但是我想做些类似的事情:
numpy.arange(datetime.datetime(2000, 1,1), datetime.datetime(2000, 1,2), datetime.timedelta(hours=1))
引发TypeError。
能做到吗?我被python 2.6和numpy 1.6.1困住了。
-
请参见NumPy
Datetimes和Timedeltas。基本上,您可以使用numpy.datetime64
类型表示NumPy中的日期时间,该类型允许您执行值的范围。对于NumPy
1.6(datetime64
类型少得多),您可以使用适当的列表推导来构建日期时间(另请参见在Python中创建日期范围):base = datetime.datetime(2000, 1, 1) arr = numpy.array([base + datetime.timedelta(hours=i) for i in xrange(24)])
这产生
array([2000-01-01 00:00:00, 2000-01-01 01:00:00, 2000-01-01 02:00:00, 2000-01-01 03:00:00, 2000-01-01 04:00:00, 2000-01-01 05:00:00, 2000-01-01 06:00:00, 2000-01-01 07:00:00, 2000-01-01 08:00:00, 2000-01-01 09:00:00, 2000-01-01 10:00:00, 2000-01-01 11:00:00, 2000-01-01 12:00:00, 2000-01-01 13:00:00, 2000-01-01 14:00:00, 2000-01-01 15:00:00, 2000-01-01 16:00:00, 2000-01-01 17:00:00, 2000-01-01 18:00:00, 2000-01-01 19:00:00, 2000-01-01 20:00:00, 2000-01-01 21:00:00, 2000-01-01 22:00:00, 2000-01-01 23:00:00], dtype=object)