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