将numpy数组转换为日期时间列表 [英] Convert numpy array to list of datetimes
本文介绍了将numpy数组转换为日期时间列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个二维日期数组,形式为:
I have a 2D array of dates of the form:
[Y Y Y ... ]
[M M M ... ]
[D D D ... ]
[H H H ... ]
[M M M ... ]
[S S S ... ]
看起来像
data = np.array([
[2015, 2015, 2015, 2015, 2015, 2015], # ...
[ 1, 1, 1, 1, 1, 1],
[ 1, 1, 1, 2, 2, 2],
[ 23, 23, 23, 0, 0, 0],
[ 4, 5, 5, 37, 37, 37],
[ 59, 1, 2, 25, 27, 29]
])
将其转换为日期时间对象列表的最佳方法是什么?
What would be the best way to convert this into one list of datetime objects?
推荐答案
import datetime
import numpy as np
data = np.array(
[[2015, 2015, 2015, 2015, 2015, 2015],
[ 1, 1, 1, 1, 1, 1],
[ 1, 1, 1, 2, 2, 2],
[ 23, 23, 23, 0, 0, 0],
[ 4, 5, 5, 37, 37, 37],
[ 59, 1, 2, 25, 27, 29]]
)
# Transpose the data so that columns become rows.
data = data.T
# A simple list comprehension does the trick, '*' making sure
# the values are unpacked for 'datetime.datetime'.
new_data = [datetime.datetime(*x) for x in data]
print(new_data)
[datetime.datetime(2015,1,1,23,4,59),datetime.datetime(2015,1, 1,23,5,1),datetime.datetime(2015,1,1,23,5,2), datetime.datetime(2015,1,2,0,37,25),datetime.datetime(2015,1, 2,0,37,27),datetime.datetime(2015,1,2,0,37,29)]
[datetime.datetime(2015, 1, 1, 23, 4, 59), datetime.datetime(2015, 1, 1, 23, 5, 1), datetime.datetime(2015, 1, 1, 23, 5, 2), datetime.datetime(2015, 1, 2, 0, 37, 25), datetime.datetime(2015, 1, 2, 0, 37, 27), datetime.datetime(2015, 1, 2, 0, 37, 29)]
这篇关于将numpy数组转换为日期时间列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文