summaryrefslogtreecommitdiff
path: root/cad/src/tools/MeanStandardDeviation.py
blob: 69158fea153629fcc862dfeb7f72ddaf451132a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/env python
# Copyright 2008 Nanorex, Inc.  See LICENSE file for details.

"""
Reads a sequence of numbers from stdin, and calculates the mean and
standard deviation.
"""

import sys
from math import sqrt

def main():
    numbers = []
    line = sys.stdin.readline()
    while (line):
        numbers.append(float(line))
        line = sys.stdin.readline()

    samples = len(numbers)
    mean = sum(numbers) / samples
    if (samples < 2):
        variance = 0
    else:
        sampleVariance = map(lambda x: (x - mean) * (x - mean), numbers)
        variance = sum(sampleVariance) / (samples - 1)
    print "samples: %d, mean: %f, standardDeviation: %f" % (samples, mean, sqrt(variance))

if (__name__ == '__main__'):
    main()