【发布时间】:2023-03-24 05:14:01
【问题描述】:
我最终得到了一大堆数字(从数据库中提取)。
所以,它可能看起来像:[1,3,1,2,1,3,1,2,3,1,2,3,1,3,1,3,1,1,3,2,3,3,3,3,1,1,1,1,3,2,1]
除了可能是 50,000 个数字而不是几十个。最小的数字永远是1,最大的数字是3。
我需要做的是找到某种滚动平均值,这样我就可以在易于管理的折线图中显示数据。
所以也许平均每 5-10 个数据点的数量?只是不确定处理此类事情的最佳方法是什么。
注意:不希望获得单一平均值。我希望将整个数组提炼成更多的平均点。因此,一个包含 1000 个点的数据集可能会被分解为 10 个平均数。
【问题讨论】:
-
作为旁注,您的示例中的最高值(编辑前)不是 3。)但真正的问题是,您的“平均值”应该有多精确?
-
您是否有理由不直接从数据库中选择平均值?
-
@mcfinnigan 我不需要单个平均值...我需要多个平均数据点。所以一个包含 1000 个数字的数据集可能有 10 个平均点。
-
@Shpigford 您的数据库可以通过按行号分组来生成切片的平均值。在这方面,DB 几乎肯定会比 ruby 至少快一个数量级。
-
@dbenhur:那么,想用那个解决方案添加答案吗?
标签: ruby arrays postgresql average