File: statistics.py

package info (click to toggle)
cain 1.10%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 29,848 kB
  • sloc: cpp: 49,612; python: 14,988; xml: 11,654; ansic: 3,644; makefile: 129; sh: 2
file content (40 lines) | stat: -rw-r--r-- 966 bytes parent folder | download | duplicates (4)
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
30
31
32
33
34
35
36
37
38
39
40
"""Statistical functions."""

import numpy

def mean(listOfArrays):
    result = numpy.zeros(listOfArrays[0].shape)
    for x in listOfArrays:
        result += x
    result /= len(listOfArrays)
    return result

def meanStdDev(listOfArrays):
    n = len(listOfArrays)
    mean = numpy.zeros(listOfArrays[0].shape)
    stdDev = numpy.zeros(listOfArrays[0].shape)
    if n > 1:
        for x in listOfArrays:
            y = numpy.array(x, numpy.float64)
            mean += y
            stdDev += y * y
        mean /= n
        stdDev -= mean * mean * n
        stdDev = numpy.sqrt(stdDev / (n - 1))
    else:
        for x in listOfArrays:
            mean += x
        mean /= n
    return mean, stdDev

def main():
    data = [numpy.array([1, 2, 3]), numpy.array([2, 3, 5])]
    print('Data:')
    print(data)
    print('Mean:')
    print(mean(data))
    print('Mean and standard deviation:')
    print(meanStdDev(data))

if __name__ == '__main__':
    main()