通常はファイルに大量のデータがあります。いくつかの量を計算したいので、この種の関数があります:
def mean(iterator):
n = 0
sum = 0.
for i in iterator:
sum += i
n += 1
return sum / float(n)
他にも多くの同様の機能があります(var
、size
、 ...)
これで、データを反復処理するイテレータができました: iter_data
. 必要なすべての量を計算できます:m = mean(iter_data); v = var(iter_data)
などですが、問題は、何度も反復していて、私の場合はコストがかかることです。実際、I/O は最も高価な部分です。
問題は、新しい関数を簡単に追加できるように、関数、 、 ...を分離したまま、1 回だけm, v, ...
反復する量を計算できるかということです。iter_data
mean
var
私が必要とするのは、boost::accumulatorsに似たものです