[Numpy-discussion] Does np.std() make two passes through the data?
Keith Goodman
kwgoodman at gmail.com
Sun Nov 21 18:43:12 EST 2010
Does np.std() make two passes through the data?
Numpy:
>> arr = np.random.rand(10)
>> arr.std()
0.3008736260967052
Looks like an algorithm that makes one pass through the data (one for
loop) wouldn't match arr.std():
>> np.sqrt((arr*arr).mean() - arr.mean()**2)
0.30087362609670526
But a slower two-pass algorithm would match arr.std():
>> np.sqrt(((arr - arr.mean())**2).mean())
0.3008736260967052
Is there a way to get the same result as arr.std() in one pass (cython
for loop) of the data?
More information about the NumPy-Discussion
mailing list