# -*- coding: utf-8 -*- #Las funciones de estadística que vamos a usar from numpy import random, mean, std #Las funciones para graficar from pylab import hist, figure, legend, show #genero 10 numeros reales al azar entre 0 y 1, con una #distribucion uniforme samples = random.random(10) print samples #la funcion hist hace el histograma de los datos, es decir cuenta #cuantos caen en cada uno de los intervalos (bins) indicados. figure() hist(samples, label='10 nros aleatorios') legend() #son pocas muestras, veamos mas samples = random.random(1e5) figure() hist(samples, 50, label='1e5 nros aleatorios') legend() #tambien vemos la media y la desviacion std #la media debe ser 1/2 media = mean(samples) print "Valor medio con 1e5: {0}".format(media) #sigma = sqrt(<^2> - <>^2), debe ser 1/(2 Sqrt(3)) ~ 0.288675134594813) sigma = std(samples) print "Desviación estándar con 1e5: {0}".format(sigma) samples = random.random(1e7) figure() hist(samples, 50, label='1e7 nros aleatorios') legend() media = mean(samples) print "Valor medio con 1e7: {0}".format(media) sigma = std(samples) print "Desviación estándar con 1e7: {0}".format(sigma) #si quieren guardar el estado del generador de #numeros aleatorios st=random.get_state() #podemos repetir los mismo con la distribution binomial con N y p #en Matlab y Octave se necesitan paquetes especiales que puede #que no tengas instalado N=500 p=0.5 samples=random.binomial(N, p, 1e5) #deberia ser N p media = mean(samples) print "Valor medio para la binomial: {0}".format(media) #deberia ser sqrt(N p (1-p)) sigma = std(samples) print "Desviación estándar para la binomial: {0}".format(sigma) figure() hist(samples, 30, label="Distribucion binomial") legend() show()