Viewing file: Statistics.py (1.35 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
# Various statistics functions. # # Written by Konrad Hinsen <hinsen@ibs.ibs.fr> # last revision: 1997-6-1 #
import Numeric
# # Univariate statistics functions # def average(data): data = Numeric.array(data) return Numeric.add.reduce(data)/len(data)
def variance(data): data = Numeric.array(data) return Numeric.add.reduce((data-average(data))**2)/(len(data)-1)
def standardDeviation(data): data = Numeric.array(data) return Numeric.sqrt(variance(data))
def histogram(data, nbins, range = None): data = Numeric.array(data, Numeric.Float) if range is None: min = Numeric.minimum.reduce(data) max = Numeric.maximum.reduce(data) else: min, max = range data = Numeric.repeat(data, Numeric.logical_and(Numeric.less_equal(data, max), Numeric.greater_equal(data, min))) bin_width = (max-min)/nbins data = Numeric.floor((data - min)/bin_width).astype(Numeric.Int) histo = Numeric.add.reduce(Numeric.equal( Numeric.arange(nbins)[:,Numeric.NewAxis], data), -1) histo[-1] = histo[-1] + Numeric.add.reduce(Numeric.equal(nbins, data)) bins = min + bin_width*(Numeric.arange(nbins)+0.5) return Numeric.transpose(Numeric.array([bins, histo]))
|