我有很多数据,通常在一个文件中。我想计算一些数量,所以我有这种功能:
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 是最昂贵的部分。
所以问题是:我可以计算我的数量只m, v, ...
迭代一次而不是iter_data
保持分开的功能mean
,var
...,这样很容易添加新的?
我需要的是类似于boost::accumulators的东西