Código que calcula Promedio Varianza y Desviación estándar (Python)

Iniciado por XD YO, 13 Marzo 2010, 02:08 AM

0 Miembros y 1 Visitante están viendo este tema.

XD YO

Buenas tardes.

Como no tenia nada mejor que hacer, solo grabarme algunas formulas de estadística, decidí crear un código en Python para realizar esos tres cálculos (Promedio Varianza y Desviación estándar), solo introduciendo los números separándolos por una coma

El código es el siguiente:
Código (python) [Seleccionar]

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
######Este es un "corto" programa para
######Calcular promedio; varianza y desviación estándar
######################################
def _promedio():
    vcdda = cadenadedatos.get()
    vforlis = "["+vcdda+"]" ###esto me crea una cadena para formar mi lista
    lista = eval(vforlis) #esto trasforma mi cadena en lista
    A = len(lista)
    suma=0
    if A>1:
        for i in lista:
            suma += i
        p = ((suma+0.0)/(A+0.0))
        vpp = Label(ventana, text="El promedio es de=\n"+str(p), justify=CENTER)
        vpp.grid(row=3, column=2,)
    else:
        tkMessageBox.showerror("Datos insuficientes", "No han sido incluidos suficientes datos como para realizar el promedio.\nIntrodusca más datos; gracias")
######################################
def _varianza():
    vcdda = cadenadedatos.get()
    vforlis = "["+vcdda+"]" ###esto me crea una cadena para formar mi lista
    lista = eval(vforlis) #esto trasforma mi cadena en lista
    lista2 = []
    A = len(lista)
    suma=0
    varis=0
    if A>1:
        for i in lista:
            suma += i
        p = ((suma+0.0)/(A+0.0))
        for j in range((A)):
            sumat = (lista[j]-p)**2
            lista2.append(sumat)
        for k in lista2:
            varis += k
        vari = varis
        va = ((vari+0.0)/(A+0.0))
        vp = Label(ventana, text="La varianza es de=\n"+str(va), justify=CENTER)
        vp.grid(row=4, column=2,)
    else:
        tkMessageBox.showerror("Datos insuficientes", "No han sido incluidos suficientes datos como para realizar la varianza.\nIntrodusca más datos; gracias")
###########################
def _desest():
    vcdda = cadenadedatos.get()
    vforlis = "["+vcdda+"]" ###esto me crea una cadena para formar mi lista
    lista = eval(vforlis) #esto trasforma mi cadena en lista
    lista2 = []
    A = len(lista)
    suma=0
    varis=0
    if A>1:
        for i in lista:
            suma += i
        p = ((suma+0.0)/(A+0.0))
        for j in range((A)):
             sumat = (lista[j]-p)**2
            lista2.append(sumat)
        for k in lista2:
            varis += k
        vari = varis
        va = sqrt((vari+0.0)/(A+0.0))
        vb = Label(ventana, text="La desviacion estandar es de=\n"+str(va), justify=CENTER)
        vb.grid(row=5, column=2,)
    else:
        tkMessageBox.showerror("Datos insuficientes", "No han sido incluidos suficientes datos como para realizar la desviación estándar.\n introduzca más datos; gracias")
####################
from math import*
from Tkinter import*
import tkMessageBox


ventana = Tk()
ventana.title("Cálculos estadísticos básicos")
####Definiendo algunas variables###
cadenadedatos = StringVar()
li = "Introduzca datos separándolos con una coma\nluego, pulse el botón del calculo a realizar\nGracias."
oA="Promedio"
oB="Varianza"
oC="Desviación\nEstándar"
#####Elementos de ventana####
ll = Label(ventana, text=li)
eli = Entry(ventana, textvariable=cadenadedatos, xscrollcommand=5)
b1 = Button(ventana, text=oA, command=_promedio)
b2 = Button(ventana, text=oB, command=_varianza)
b3 = Button(ventana, text=oC, command=_desest)
#### Conlocandolos en la grilla######
ll.grid(row=0, column=1, columnspan=3)
eli.grid(row=1, column=2)
b1.grid(row=2, column=1)
b2.grid(row=2, column=2)
b3.grid(row=2, column=3)
ventana.mainloop()


Y aquí unas vistas del programa:

Se aceptan sugerencias.  :D
"Fácilmente aceptamos la realidad, acaso porque intuimos que nada es real"
-Borges -El inmortal