summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Wu <lekensteyn@gmail.com>2013-10-28 10:55:35 +0100
committerPeter Wu <lekensteyn@gmail.com>2013-10-28 10:55:35 +0100
commit6da82aea0a8a4dc53903cf69f7ca8ba008c69cb7 (patch)
tree409a9ad1c9567836013687abb83a2aab16927c3f
parent2f93cce4dc3e659ce11ccae93fb256cec1258062 (diff)
downloadscripts-6da82aea0a8a4dc53903cf69f7ca8ba008c69cb7.tar.gz
calc-stats.py: calculate min/max/avg/sd
-rwxr-xr-xcalc-stats.py28
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))