微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐