我有一个np数组,如下所示:
example = np.array([[Timestamp('2005-03-06 17:00:00'), 1225.75, 1226.25, 1225.0, 1225.5,
1668.0],
[Timestamp('2005-03-06 17:30:00'), 1225.75, 1227.5, 1225.75, 1227.0,
1603.0],
[Timestamp('2005-03-06 18:00:00'), 1227.0, 1227.5, 1226.75, 1227.25,
590.0]], dtype=object)
第一列是时间戳类型值。如何将这些值转换为日期时间?我知道在这个主题上很少有类似的问题,但我无法对它形成清晰的理解,并在此基础上找出一个干净整洁的解决方案。
我可以用example[0,0].to_datetime()
转换单个值的时间戳,但如何一次转换所有时间戳?最好是example[:,0].
...
3条答案
按热度按时间eivgtgni1#
如果我将
Timestamp
定义为numpy
datetime dtype:然后我可以复制粘贴您的
example
:请注意,此数组为
dtype
object
第一列是:
它可以转换为
datetime64
元素的数组:tolist
对于这种类型的数组,将元素转换为datetime
对象:或者,抓取
pandas.Timestamp
函数Timestamp对象的迭代转换
但我发现
astype
可以与Timestamp
对象一起工作:所以我可以使用
tolist
在一行中完成转换:我不会将其描述为最终解决方案,但它可以让您了解
numpy
如何处理日期。对于数组数学,我坚持使用
datetime64
dtype。要将example[:,1:]
浮点数沿着放在一个数组中,必须使用结构化数组。尝试一个副本:
k2arahey2#
西洛,试试:
svgewumm3#
很简单:
t = np.datetime64('2018-08-18 23:25')
-->numpy.datetime64('2018-06-18T23:31')
str(t)
-->'2018-06-18T23:31'
t.tolist()
-->datetime.datetime(2018, 6, 18, 23, 31)
这就是你所需要的