diff options
Diffstat (limited to 'calc-stats.py')
-rwxr-xr-x | calc-stats.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/calc-stats.py b/calc-stats.py new file mode 100755 index 0000000..0d3a5fe --- /dev/null +++ b/calc-stats.py @@ -0,0 +1,28 @@ +#!/usr/bin/python +# calculate statistics for a set of numbers from stdin + +import sys +from math import sqrt + +def mean(data): + return sum(data) / len(data) + +def variance(data): + n = len(data) + ss = sum(x**2 for x in data) - (sum(data)**2 / n) + return ss / (n - 1) + +def sdev(data): + return sqrt(variance(data)) + +xs = [] +for line in sys.stdin: + xs.append(float(line)) + +print("Data:", xs) + +print("n=", len(xs)) +print("min:", min(xs)) +print("max:", max(xs)) +print("Mean:", mean(xs)) +print("sd:", sdev(xs)) |