如何重新采样/下采样不规则的时间戳列表?

简单的问题,但我找不到一个简单的答案.

我有一个数据列表,它以秒为单位计算事件发生的时间:

[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应该包含一天的事件.

上一篇:内核估计每点使用一个带宽值


下一篇:关于scipy的ImportError: cannot import name ‘imread‘问题解决方案