Mercurial > hg > numerics
comparison numerics/normalize.py @ 164:c16940bd2cee
this works
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Fri, 15 May 2015 16:59:09 -0700 |
parents | 8508dbeb9759 |
children |
comparison
equal
deleted
inserted
replaced
163:8508dbeb9759 | 164:c16940bd2cee |
---|---|
5 normalize columns | 5 normalize columns |
6 """ | 6 """ |
7 | 7 |
8 # imports | 8 # imports |
9 import sys | 9 import sys |
10 from .convert import numeric | |
11 from .data import transpose | |
10 from .manipulate import ManipulationParser | 12 from .manipulate import ManipulationParser |
11 | 13 |
12 # module globals | 14 # module globals |
13 __all__ = ['main', 'NormalizationParser'] | 15 __all__ = ['normalize', 'NormalizationParser'] |
16 | |
17 def normalize(*data): | |
18 """normalize data""" | |
19 norm = float(sum(data)) | |
20 return [i/norm for i in data] | |
14 | 21 |
15 class NormalizationParser(ManipulationParser): | 22 class NormalizationParser(ManipulationParser): |
16 """CLI option parser""" | 23 """CLI option parser""" |
17 | 24 |
18 | 25 |
21 | 28 |
22 # parse command line options | 29 # parse command line options |
23 parser = NormalizationParser() | 30 parser = NormalizationParser() |
24 options = parser.parse_args(args) | 31 options = parser.parse_args(args) |
25 | 32 |
33 # get columns | |
34 columns = parser.typed_data() | |
35 for index in range(len(columns)): | |
36 column = columns[index] | |
37 if column and isinstance(column[0], numeric): | |
38 columns[index] = normalize(*column) | |
39 | |
40 # output | |
41 parser.write(transpose(columns)) | |
26 | 42 |
27 if __name__ == '__main__': | 43 if __name__ == '__main__': |
28 main() | 44 main() |
29 | 45 |
30 | 46 |