【发布时间】:2016-02-15 04:20:30
【问题描述】:
我正在分析一些非常紧密地聚集在一起的数字时间测量值。我想获得平均值、标准差等。有些输入很大,所以我想我可以避免创建数百万个数字的列表,而是 使用 Python collections.Counter 对象作为紧凑的表示。
示例:我的一个小输入产生 collection.Counter 类似 [(48, 4082), (49, 1146)],这意味着值 48 出现 4,082 次,值 49 出现 1,146 次。对于这个数据集,我手动计算平均值为 48.2192042846。
当然,如果我有一个 4,082 + 1,146 = 5,228 个整数的简单列表,我只会将它提供给 numpy.mean()。
我的问题:我如何从 collections.Counter 对象中的值计算描述性统计数据,就像我有一个数字列表一样?我必须创建完整列表还是有快捷方式?
【问题讨论】:
-
(我自己没时间写答案,但是
np.average有一个权重参数,你可以手动做stddev,见here——如果有人想用这种方法我会删除它)