Encontrar media, mediana, modo en Python sin bibliotecas

En este artículo, aprenderemos cómo calcular la media, la mediana y la moda con Python sin usar bibliotecas externas.

  1. Media: La media es el promedio de todos los números ya veces se le llama media aritmética . Este código calcula la media o el promedio de una lista que contiene números:

    # Python program to print
    # mean of elements
      
    # list of elements to calculate mean
    n_num = [1, 2, 3, 4, 5]
    n = len(n_num)
      
    get_sum = sum(n_num)
    mean = get_sum / n
      
    print("Mean / Average is: " + str(mean))
    Producción:

    Mean / Average is: 3.0
    

    Definimos una lista de números y calculamos la longitud de la lista. Luego usamos la función sum() para obtener la suma de todos los elementos en una lista. Finalmente dividimos la suma total por el número de elementos de la lista e imprimimos el resultado para obtener la media/promedio de una lista.

  2. Mediana: La mediana es el número del medio en un grupo de números. Este código calcula la mediana de una lista que contiene números:

    # Python program to print
    # median of elements
      
    # list of elements to calculate median
    n_num = [1, 2, 3, 4, 5]
    n = len(n_num)
    n_num.sort()
      
    if n % 2 == 0:
        median1 = n_num[n//2]
        median2 = n_num[n//2 - 1]
        median = (median1 + median2)/2
    else:
        median = n_num[n//2]
    print("Median is: " + str(median))
    Producción:

    Median is: 3
    

    Definimos una lista de números y calculamos la longitud de la lista. Para encontrar una mediana, primero ordenamos la lista en orden Ascendente usando la función sort().
    Ahora comprobamos si el número es par o impar comprobando sus residuos. Si el número es par, encontramos 2 elementos intermedios en una lista y obtenemos su promedio para imprimirla. Pero si el número es impar, buscamos el elemento del medio en una lista y lo imprimimos.

  3. Moda: La moda es el número que ocurre con mayor frecuencia dentro de un conjunto de números. Este código calcula el modo de una lista que contiene números:

    # Python program to print
    # mode of elements
    from collections import Counter
      
    # list of elements to calculate mode
    n_num = [1, 2, 3, 4, 5, 5]
    n = len(n_num)
      
    data = Counter(n_num)
    get_mode = dict(data)
    mode = [k for k, v in get_mode.items() if v == max(list(data.values()))]
      
    if len(mode) == n:
        get_mode = "No mode found"
    else:
        get_mode = "Mode is / are: " + ', '.join(map(str, mode))
          
    print(get_mode)
    Producción:

    Mode is / are: 5
    

    Importaremos Counter de la biblioteca de colecciones, que es un módulo integrado en Python 2 y 3. Este módulo nos ayudará a contar los elementos duplicados en una lista.
    Definimos una lista de números y calculamos la longitud de la lista. Luego llamamos a Counter (una subclase de dictado) que ayuda a contar objetos que se pueden modificar y luego lo convertimos en objeto de dictado. A continuación, inicializamos una lista con un For Loop para comparar todos los valores dictados (Número de elementos) con el máximo de todos los valores dictados (recuento de la mayoría de los elementos que aparecen) y devuelve todos los elementos iguales al recuento máximo. Si los elementos devueltos son iguales al número total de elementos en una lista, imprimimos ‘Sin modo’, de lo contrario, imprimimos los modos devueltos.

    Otro enfoque simple para encontrar el modo con codificación simple

    # The list for which you need to find 
    # the Mode
    y= [11, 8, 8, 3, 4, 4, 5, 6, 6, 6, 7, 8]
      
    # First you sort it
    # You will get numbers arranged from 3 to 
    # 11 in asc order
    y.sort() 
      
    # Now open an empty list.
    # What you are going to do is to count
    # the occurrence of each number and append
    # (or to add your findings to) L1
    L1=[]
      
    # You can iterate through the sorted list
    # of numbers in y,
    # counting the occurrence of each number,
    # using the following code
      
    i = 0
    while i < len(y) :
        L1.append(y.count(y[i]))
        i += 1
      
    # your L1 will be [1, 2, 2, 1, 3, 3, 3, 1, 3, 3, 3, 1], 
    # the occurrences for each number in sorted y
      
    # now you can create a custom dictionary d1 for k : V
    # where k = your values in sorted y 
    # and v = the occurrences of each value in y
      
    # the Code is as follows
      
    d1 = dict(zip(y, L1))
      
    # your d1 will be {3: 1, 4: 2, 5: 1, 6: 3, 7: 1, 8: 3, 11: 1}
    # now what you need to do is to filter 
    # the k values with the highest v values.
    # do this with the following code
      
    d2={k for (k,v) in d1.items() if v == max(L1) }
      
    print("Mode(s) is/are :" + str(d2))

    Producción:

    Mode(s) is/are :{8, 6}

Conclusión
Hemos calculado con éxito la media, la mediana y la moda de un conjunto de datos, pero es posible que esté pensando: «¿Usaré estos algoritmos cada vez que quiera obtener la media, la mediana y la moda de un conjunto de datos?»
La respuesta es que puedes, pero ciertamente no lo harás. Esto fue solo para mostrarle cómo funciona el algoritmo detrás de escena al descubrir cualquiera de estos.
Para cualquier proyecto, esto se puede lograr simplemente importando una biblioteca incorporada de «estadísticas» en Python 3 y usando las funciones incorporadas mean(), mediana() y mode(). Además, existen otras bibliotecas externas que pueden ayudarlo a lograr los mismos resultados en solo 1 línea de código, ya que el código está preescrito en esas bibliotecas.

Publicación traducida automáticamente

Artículo escrito por RishabhAgrawal6 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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