Mathematics
iterative mean, std (standard deviation)
DS-Lee
2020. 9. 10. 17:57
Source url : https://math.stackexchange.com/questions/102978/incremental-computation-of-standard-deviation
Example
# samples
samples = [np.random.normal(0, 1) for i in range(100)]
# param
max_idx = 500
# initialzed vars
mu = 0.0
var = 0.0
idx = 1
# run
for s in samples:
var = (idx - 2)/(idx - 1 + 1e-6) * var + (1/idx)*(s - mu)**2
mu = 1/idx * (s + (idx-1)*mu)
idx += 1
if idx == max_idx:
idx = max_idx
print("{:0.1f}, {:0.1f}".format(mu, var))
output: