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
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.