如何有效地转换numpy记录数组中的日期?

2024-06-01 09:14:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须将一个非常大(170万条记录)的csv文件读取到numpy记录数组中。其中两列是需要转换为datetime对象的字符串。另外,有一列需要是这些日期时间之间的计算差。在

目前,我创建了一个自定义迭代器类来构建列表列表。然后我使用np.rec.fromrecords公司把它转换成数组。在

但是,我注意到日期时间.strptime()很多次真的让事情变慢了。我想知道有没有更有效的方法来进行这些转换。时间在一个日期内精确到秒。所以,假设时间是均匀分布的(它们不是),看起来我做了20倍的必要转换(170万/(60×60×24)。在

在进行不必要的转换之前,将转换后的值存储在dictionary{stringdates:datetime obj}中并首先检查字典,会不会更快?在

还是应该使用numpy函数(我对numpy库还是新手)?在


Tags: 文件csv对象字符串numpy列表datetimenp
1条回答
网友
1楼 · 发布于 2024-06-01 09:14:56

我可能是错的,但在我看来,你的问题是重复出现,因此做同样的转换比必要的次数要多。如果这种解释是正确的,那么最有效的方法将取决于重复的次数。如果你在170万次重复中有10万次重复,那么写160万次字典并检查170万次可能不会更有效,因为它可以进行160万次+170万次的读/写操作。但是,如果你有100万次重复,那么返回一个答案(O(1)),而不是进行额外的百万次转换,会更快。在

总之,python的速度非常慢,如果使用170万个输入,您可能根本无法加快速度。至于numpy函数,我也不太精通,但我相信网上有一些很好的文档。在

相关问题 更多 >