最初の列が特定の基準点を過ぎた秒数で、2 番目の列が任意の測定値であるテーブルを考えると、次のようになります。
6 0.738158581
21 0.801697222
39 1.797224596
49 2.77920469
54 2.839757536
79 3.832232283
91 4.676794376
97 5.18244704
100 5.521878863
118 6.316630137
131 6.778507504
147 7.020395216
157 7.331607129
176 7.637492223
202 7.848079136
223 7.989456499
251 8.76853608
278 9.092367123
...
ご覧のとおり、測定値は不規則な時点でサンプリングされています。各測定の 100 秒前に (Python で) 読み取り値を平均化して、データを平滑化する必要があります。データ テーブルは非常に大きいため、イテレータ ベースの方法が実際に推奨されます。残念ながら、2 時間のコーディングを行っても、効率的で洗練されたソリューションを見つけることができません。
誰でも私を助けることができますか?
編集_
生の読み取り値ごとに 1 つの平滑化された読み取り値が必要です。平滑化された読み取り値は、前の 100 (デルタ) 秒の生の読み取り値とその他の値の算術平均になります。(ジョン、あなたは正しい)
巨大な ~ 1e6 ~ 10e6 行 + タイトな RAM で動作する必要がある
データはほぼランダムウォークです
データはソートされています
解像度
J Machin と yairchu によって提案されたソリューションをテストしました。どちらも同じ結果でしたが、私のデータ セットでは、J Machin のバージョンは指数関数的に実行されましたが、yairchu のバージョンは線形でした。以下は、IPython の%timeit (マイクロ秒単位) で測定された実行時間です。
data size J Machin yairchu
10 90.2 55.6
50 930 258
100 3080 514
500 64700 2660
1000 253000 5390
2000 952000 11500
助けてくれてありがとう。