From 6da82aea0a8a4dc53903cf69f7ca8ba008c69cb7 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Mon, 28 Oct 2013 10:55:35 +0100 Subject: calc-stats.py: calculate min/max/avg/sd --- calc-stats.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 calc-stats.py (limited to 'calc-stats.py') 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)) -- cgit v1.2.1