我怎样才能使python numpy的日期时间范围

发布于 2021-01-29 17:51:37

我有一些输入数据,输入文件中的时间戳以从文件名中指定的日期时间开始的小时数形式出现。

这有点没用,所以我需要将其转换为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困住了。

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    请参见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)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看