用于执行运行计算的库
RunningCalcs的Python项目详细描述
简介
这个库中的RunnincCalc类的实例可以一次提供一个输入值。这允许在迭代器上的一次传递中运行多个计算。对于大多数计算的内置变量,如max()和heapq.nlargest(),这是不可能的。
RunningCalc实例可以直接输入值,例如:
mean_rc, stddev_rc = RunningMean(), RunningStdDev() for x in values: mean_rc.feed(x) stddev_rc.feed(x) mean, stddev = mean_rc.value, stddev_rc.value
此外,还提供了apply_in_parallel()函数,这使得并行执行多个计算变得简单(而且快速!)。例如:
mean, stddev = apply_in_parallel([RunningMean(), RunningStdDev()], values) five_smallest, five_largest = apply_in_parallel([RunningNSmallest(5), RunningNLargest(5)], values)
优化
除了基本的feed()方法之外,一些RunningCalc类还实现了一个优化的feedMultiple()方法,该方法接受一系列要处理的值。这允许将值分块处理,在许多情况下允许更快的处理。
apply_in_parallel()函数自动将给定的输入值的iterable拆分为块(块大小可以通过chunk_size关键字参数控制)。因此,使用apply_in_parallel()既快又容易。
编写自己的runningcalc类
- 子类RunningCalc
- 实现__init__()和feed()方法
- 通过value属性访问计算输出值
- 可选地实现优化的feedMultiple()方法 注意:RunningCalc基类包含feedMultiple() 的默认纯实现