2015-11-11 25 views
1

我需要一些帮助来装箱我的数据值。需要一个类似直方图的函数,但我不想列出出现次数,只是每个bin的值的总和。如何在Python中列出列表值的总和?

在我的例子中,我有一个列表,其中有30天的Twitter追随者人数。假设我想要10个垃圾箱,那么每个垃圾箱的值将是30/10 = 3天。在前三天,箱1的值将为箱2 2 12618等的1391 + 142 + 0 = 1533,直到箱10为止。

箱的数量以及持续时间最终可以变化。例如,它还需要工作31天和5箱。

任何人都知道如何有效地做到这一点?有没有可以做到这一点的Python功能?否则,执行一个for循环,可以将n个列表中的值相加在一起,直到持续时间结束。

所有帮助将不胜感激:)谢谢!

followersList = [1391, 142, 0, 0, 12618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 

    duration = 30 
    bins = 10 
    binWidth = round(duration/bins) 

    # 
    # for loop or python function that sums values for each bin 
    # 
+0

检查使用numpy的解决这个问题。 http://stackoverflow.com/a/6163403/4080476 –

+0

我们不是来做你的功课。先尝试一些东西,例如for循环。 – Dese

回答

1

你可以这样说:在这里

bin_width = int(round(duration/bins)) 
followers = [sum(followersList[i:i+bin_width]) for i in xrange(0, duration, bin_width)] 
+0

谢谢,很好的回答!在列表解析方面没有太多的经验。现在我可以将Twitter功能再次提供给我的机器学习模型:) –