Python 3.x 从numpy数组浮动创建datetime对象

Python 3.x 从numpy数组浮动创建datetime对象,python-3.x,datetime,Python 3.x,Datetime,我有一个numpy数组,它包含4天中的小时数: s = np.array([0.0, 1.0, 2.0, 3.0, 4.0 ....96.0]) 我想从中创建一个datetime对象 我知道第一个元素的时间戳是2021-03-21 00:00, 因此: 如何创建包含日期时间的新数组,从s数组开始递增一小时。用于构建新数组: >>> import numpy as np >>> from datetime import datetime, timedelta

我有一个numpy数组,它包含4天中的小时数:

s = np.array([0.0, 1.0, 2.0, 3.0, 4.0 ....96.0])
我想从中创建一个datetime对象

我知道第一个元素的时间戳是2021-03-21 00:00, 因此:

如何创建包含日期时间的新数组,从
s
数组开始递增一小时。

用于构建新数组:

>>> import numpy as np
>>> from datetime import datetime, timedelta
>>> s = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 96.0])
>>> start_date = datetime.strptime('2021-03-21 00:00', '%Y-%m-%d %H:%M')
>>> [start_date + timedelta(hours=diff) for diff in s]
[datetime.datetime(2021, 3, 21, 0, 0), datetime.datetime(2021, 3, 21, 1, 0), datetime.datetime(2021, 3, 21, 2, 0), datetime.datetime(2021, 3, 21, 3, 0), datetime.datetime(2021, 3, 21, 4, 0), datetime.datetime(2021, 3, 25, 0, 0)]

您可以执行类似于
start\u date\u incremented=[x+datetime.timedelta(hour=1)for x in start\u date\u array]
它给出了:
timedelta hours组件不支持的类型:numpy.float32
。如果我尝试转换为整数,你使用的是哪种Python和Numpy版本?np:1.19.2,Python:3.7.10Hm我使用的是Numpy 1.13.3和Python 3.6.9,但不会有太大区别。您尝试了
hours=int(diff)
?很高兴听到!另一个选项是使用
int
转换为int,然后使用
item
访问Python值,如:
[start\u date+timedelta(hours=diff.item())for diff in np.int(s)]
>>> import numpy as np
>>> from datetime import datetime, timedelta
>>> s = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 96.0])
>>> start_date = datetime.strptime('2021-03-21 00:00', '%Y-%m-%d %H:%M')
>>> [start_date + timedelta(hours=diff) for diff in s]
[datetime.datetime(2021, 3, 21, 0, 0), datetime.datetime(2021, 3, 21, 1, 0), datetime.datetime(2021, 3, 21, 2, 0), datetime.datetime(2021, 3, 21, 3, 0), datetime.datetime(2021, 3, 21, 4, 0), datetime.datetime(2021, 3, 25, 0, 0)]