Normalizing a list of numbers in Python

Adam_G picture Adam_G · Nov 6, 2014 · Viewed 102.8k times · Source

I need to normalize a list of values to fit in a probability distribution, i.e. between 0.0 and 1.0.

I understand how to normalize, but was curious if Python had a function to automate this.

I'd like to go from:

raw = [0.07, 0.14, 0.07]  

to

normed = [0.25, 0.50, 0.25]

Answer

Tony Suffolk 66 picture Tony Suffolk 66 · Nov 6, 2014

Use :

norm = [float(i)/sum(raw) for i in raw]

to normalize against the sum to ensure that the sum is always 1.0 (or as close to as possible).

use

norm = [float(i)/max(raw) for i in raw]

to normalize against the maximum