简单的问题,但我找不到一个简单的答案.
我有一个数据列表,它以秒为单位计算事件发生的时间:
[200.0 420.0 560.0 1100.0 1900.0 2700.0 3400.0 3900.0 4234.2 4800.0 etc..]
我想计算每小时(3600秒)发生了多少事件,并创建一个这些计数的新列表.
我知道这称为下采样,但是我能找到的所有信息都与传统时间序列有关.
对于上面的示例,新列表如下所示:
[7 3 etc..]
任何帮助将不胜感激.
解决方法:
all_events = [
200.0, 420.0, 560.0, 1100.0, 1900.0, 2700.0, 3400.0, 3900.0, 4234.2, 4800.0]
def get_events_by_hour(all_events):
return [
len([x for x in all_events if int(x/3600.0) == hour])
for hour in xrange(24)
]
print get_events_by_hour(all_events)
请注意,all_events应该包含一天的事件.