¿Cómo hacer una tabla de distribución de frecuencias con python? – python python-3.x numpy

Pregunta:


Estoy trabajando con distribuciones de frecuencias, hice un script sencillo pero muy redundante que me permite obtener la distribución de frecuencias relativa de ciertos datos, pero no creo que sea la mejor implementación, busque por la red pero no encontré mucho acerca de como hacer estas tablas (no así de histogramas de frecuencia)

Mi idea general es esta:

mujeres.txt

76 
72
88 
60 
72 
68 
80 
64 
68 
68 
80 
76 
68 
72 
96 
72 
68 
72 
64 
80
64 
80 
76 
76 
76 
80 
104 
88 
60 
76 
72 
72 
88 
80 
60 
72 
88 
88 
124 
64

codigo.py

import numpy as np
from math import ceil

datos = np.genfromtxt('mujeres.txt')

def distribucion_frecuencias_relativas(datos, numero_clases):

    anchura_clase = (max(datos) - min(datos)) / numero_clases # anchura de clase = (valor más alto) - (valor más bajo) / numero de clases
    anchura_clase = ceil(anchura_clase)
    clases = [] # ejemplo: clases[[inferior, superior]]
    limite_inferior = min(datos)
    limite_superior = anchura_clase - 1
    frecuencia = []

    for i in range(numero_clases):
        if len(clases) == 0:
            clases.append([limite_inferior, (limite_inferior + limite_superior)])
        else:
            limite_inferior += anchura_clase
            clases.append([limite_inferior, (limite_inferior + limite_superior)])
        frecuencia.append([])

    for valor in datos:
        for i in range(0, numero_clases):
            if valor >= clases[i][0] and valor <= clases[i][1]:
                frecuencia[i].append(valor)
                break   

    print(" Pulsott", "Frecuencia")
    for i in range(0, numero_clases):
        print("{0}-{1}t {2:.1f}%".format(clases[i][0], clases[i][1], ((len(frecuencia[i]) / len(datos)) * 100) ))

¿Cómo podría simplificar esto y hacerlo de la manera correcta y más pythonica? quise hacerlo implementando un poco más de numpy pero al final no lo hice por no saber como comparar los datos con los rangos de las clases. También intente con pandas, pero no supe como generar los limites de cada clase.

Un saludo.

Preguntado por: Samael Olascoaga

eyllanesc

Numpy es una librería que contiene una gran cantidad de funciones de cálculo númerico, por lo que usted busca ya esta implementada.

import numpy as np 
import matplotlib.pyplot as plt

filename = "mujeres.txt"
data = np.loadtxt(filename)
hist, bin_edges = np.histogram(data, 10)
plt.hist(data, bins=bin_edges)
plt.show()

introducir la descripción de la imagen aquí

Fuente

Related Posts:

Python editor extension for laravel-admin
...
DreamFactory(tm) Scripting Components
...
Enhance PHP sprintf with Python-style named parameters
...
Python string slices in PHP
...
Non-standard PHP library (NSPL) – functional primitives toolbox and more
...
PHP client for Celery task queue
...
File Upload widget for jQuery.
...
Con Django ‘str’ object is not callable en class based-views – python django
Pregunta: Tengo este problema cuando quiero acceder a una URL que me dice que es str object is no callable seguramente tengo algo mal en ...
Abrir páginas web en python 3.5.X en la misma ventana – python python-3.x webbrowser
Pregunta: Buenas, he hecho un script para lanzar varias páginas web en una sola ventana, es decir, cada url en una pestaña sin embargo, firefox ...
Publicar proyecto en Python 3.5 con heroku – python django python-3.x
Pregunta: Hola tengo un proyecto hecho con Python 3.5 y Django 1.10 y quisiera publicarlo en HEROKU pero veo que solo soporta Python 2.7, ¿alguien ...
Correcto uso de la app admin de django – python django
Pregunta: Cual es el correcto uso que se le debe dar a la página de administración (django.contrib.admin) en una aplicación en producción. explico mi pregunta. El ...
Cambiar un valor string a un entero – python django ajax
Pregunta: Con el siguiente código quiero hacer una validación donde valide si un dato que voy a ingresar es mayor a otro que ya tengo, ...
Como correr Django en python 3.5 – python python-3.x django
Pregunta: estoy trabajando con Django en python 2.7, para eso hago uso de virtualenv, pip, el conector de mysql, etc. Tengo predefinido python 3.5 en ...
Insertar salto de línea escribiendo en un txt (Python) – python tkinter
Pregunta: Como puedo insertar un salto de línea : archi.write(svnombreRP.get()) Lo hago de la siguientes maneras y no me funciona: No funciona archi.write(svnombreRP.get()'/n') No funciona archi.write(svnombreRP.get()/n) No funciona, me imprime la variable ...
Python elemento IN lista de strings – python python-3.x
Pregunta: tengo la siguiente lista y string: lis = palabra = 'ejemplo' Pero cuando hago palabra in lis Me retorna False. ¿A qué ...

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *