【发布时间】:2023-04-10 05:40:01
【问题描述】:
我有一个大致像这样的 numpy 数组:
data
array([(datetime.datetime(2009, 1, 6, 2, 30), 17924.0, 0.0),....
(datetime.datetime(2009, 1, 29, 16, 30), 35249.2, 521.25],
dtype=[('timestamp', '|O4'), ('x1', '<f8'), ('x2', '<f8')])
我希望能够根据第一列(即使用日期时间对象)对数据进行索引,这样我就可以访问特定年/月/日的数据,如下所示:
data[data['timestamp'].year == 2009]
这显然行不通。我唯一能想到的就是添加额外的列(例如“年份”列),所以这会起作用:
data[data['year'] == 2009]
似乎是一种相当低效的做事方式(并且会复制大量数据) - 特别是如果我还想对所有其他时间间隔进行索引...有没有更好的方法来做到这一点?
提前致谢。
【问题讨论】:
标签: python datetime numpy recarray