我必须读一个非常大的(170万条记录)csv文件到一个numpy记录数组。其中两列是需要转换为日期时间对象的字符串。此外,一列需要计算这些日期之间的差异。如何有效地转换numpy记录数组中的日期?
目前我做了一个自定义的迭代器类,它构建了一个列表列表。然后我使用np.rec.fromrecords将其转换为数组。
但是,我注意到调用datetime.strptime()这么多次真的会减慢速度。我想知道是否有更有效的方法来完成这些转换。时间在日期范围内精确到秒。所以,假设时间是均匀分布的(他们不是),看起来我正在做更多20倍的必要转换(170万/(60 X 60 X 24)。
会更快地存储在字典{字符串日期:日期时间OBJ}转换值和第一查了字典,做不必要的转换之前
或者我应该使用numpy的功能(我还是新来的numpy的库)
你能告诉我们在csv文件中使用什么日期格式吗?我会假设'fromfunction()'可以在这里帮助,但我需要稍微更多的信息。 – Wolph 2012-07-20 18:51:54
19-JUL-12 02.05.53 PM – 2012-07-20 19:05:51
如果所有这些都在一天之内,应该很容易使转换变得更简单。你只需要解析一次日期。在这之后,您只需将这样的秒数转换为:'lambda x:int(x [-11:-9])* 3600 + int(x [-8:-6])* 60 + int(x [-5: - 3])' – Wolph 2012-07-20 19:12:20