python

Python – Media y mediana de lista

La media de un arreglo es el promedio del mismo. Para obtenerla se divide la sumatoria de los elementos entre la longitud del mismo. Por otro lado, la mediana es el elemento que está a la mitad del arreglo ordenado.

En este post de programación en Python vamos a ver cómo obtener la media y la mediana de una lista, arreglo o array.

Por cierto, en cuanto a la mediana… si la longitud del arreglo es par, se promedian los dos elementos centrales.

Nota: en este post me referiré a la misma cosa cuando diga arreglo, array o lista.

Obtener media aritmética

Para calcular el promedio del arreglo hay que recorrerlo usando un ciclo for. En cada paso, hay que sumar el valor actual a una sumatoria que declaramos en cero antes del ciclo.

Después dividimos esa sumatoria entre la longitud del arreglo.

def obtener_media(arreglo):
    # La media es básicamente el promedio
    sumatoria = 0
    for valor in arreglo:
        sumatoria += valor
    longitud = len(arreglo)
    return sumatoria / longitud

He encerrado el comportamiento en una función para que el código esté más limpio y ordenado. Esta función de Python 3 recibe un arreglo y regresa la media.

Mediana

Ahora veamos el caso de la mediana. Antes de obtenerla, debemos ordenar el arreglo usando el método de nuestra preferencia. Yo usaré sort, que ordena al arreglo internamente.

Después de haberlo ordenado, calculamos el índice del elemento que se encuentra a la mitad de la lista de Python. En caso de que la longitud del arreglo sea par, promediamos los elementos centrales y esa es la mediana.

En caso de que la longitud sea par, la mediana es el elemento que se encuentra en la mitad. Todo esto traducido a código queda así:

def obtener_mediana(arreglo):
    # Primero lo ordenamos. Puedes hacerlo manualmente o con métodos del lenguaje:
    # https://parzibyte.me/blog/2020/09/25/ordenar-listas-python/
    arreglo.sort()
    # Obtener longitud
    longitud = len(arreglo)
    mitad = int(longitud / 2)
    # Si la longitud es par, promediar elementos centrales
    if longitud % 2 == 0:
        mediana = (arreglo[mitad - 1]+arreglo[mitad]) / 2
    else:
        # Si no, es la del centro
        mediana = arreglo[mitad]
    return mediana

Esta función recibe un arreglo, lista o array y devuelve la mediana. Fíjate que para saber si la longitud es par o impar, comparamos si su residuo al dividirla entre 2 es 0 en la línea 10.

Código completo

Obtener media y mediana de arreglo en Python

Bien, ya vimos las funciones por separado. Ahora veamos cómo es que podemos invocarlas, con un ejemplo:

"""
    https://parzibyte.me/blog
"""


def obtener_mediana(arreglo):
    # Primero lo ordenamos. Puedes hacerlo manualmente o con métodos del lenguaje:
    # https://parzibyte.me/blog/2020/09/25/ordenar-listas-python/
    arreglo.sort()
    # Obtener longitud
    longitud = len(arreglo)
    mitad = int(longitud / 2)
    # Si la longitud es par, promediar elementos centrales
    if longitud % 2 == 0:
        mediana = (arreglo[mitad - 1]+arreglo[mitad]) / 2
    else:
        # Si no, es la del centro
        mediana = arreglo[mitad]
    return mediana


def obtener_media(arreglo):
    # La media es básicamente el promedio
    sumatoria = 0
    for valor in arreglo:
        sumatoria += valor
    longitud = len(arreglo)
    return sumatoria / longitud


arreglo = [5, 123, 1, 4, 3, 1, 9, 8, 1]
print("El arreglo es: " + str(arreglo))
mediana = obtener_mediana(arreglo)
print(f"La mediana es {mediana}")
media = obtener_media(arreglo)
print(f"La media es {media}")

En este caso la media será impresa tal y como es. Si quieres puedes redondearla a dos decimales. Obviamente el arreglo puede ser cambiado por alguno de tu preferencia, incluso podría ser llenado por el usuario.

Te invito a leer más tutoriales sobre Python en mi blog.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

3 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

3 días hace

Solución: Apache – Server unable to read htaccess file

Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…

3 días hace

Esta web usa cookies.