14
|
1 """
|
|
2 filter functions for stats
|
|
3 """
|
|
4
|
|
5 __all__ = ['mean', 'array_mean', 'median']
|
|
6
|
|
7 def mean(data):
|
|
8 return sum(data)/float(len(data))
|
|
9
|
|
10 def array_mean(data):
|
|
11 if not data:
|
|
12 return []
|
|
13 lengths = [len(i) for i in data]
|
|
14 if len(set(lengths)) != 1:
|
|
15 raise AssertionError("Different lengths to array_mean: {}".format(' '.join(lengths)))
|
|
16 return [mean(i) for i in zip(*data)]
|
|
17
|
|
18 def median(data):
|
|
19 length = len(data)
|
|
20 index = length/2
|
|
21 if length % 2:
|
|
22 return data[index]
|
|
23 else:
|
|
24 return 0.5*(data[index-1] + data[index])
|
|
25
|