[Python-Dev] Accumulation module (original) (raw)

Kevin Jacobs jacobs at penguin.theopalgroup.com
Tue Jan 13 15:26:43 EST 2004


On Tue, 13 Jan 2004, Raymond Hettinger wrote:

* Is there a way to compute the standard deviation without multiple passes over the data (one to compute the mean and a second to sum the squares of the differences from the mean?

Yes --

def one_pass_stddev(l): n = 0 x = 0. xx = 0.

for y in l: n += 1 x += y xx += y*y

x /= n xx /= n var = max(0,xx - x*x) dev = var**0.5

return dev

Skewness and kurtosis can also be computed in one pass, though numerical stability problems can occur (even with std.dev) with these kinds of methods.

-Kevin



More information about the Python-Dev mailing list