Obtenga las frecuencias de los elementos de la lista usando Python

Hafiz Muhammad Zohaib 21 junio 2023
  1. Use el módulo colecciones para obtener las frecuencias de los elementos de la lista usando Python
  2. Código manual para obtener frecuencias de elementos de lista usando Python
  3. Use NumPy para obtener las frecuencias de los elementos de la lista usando Python
Obtenga las frecuencias de los elementos de la lista usando Python

Este breve artículo explicará las posibles formas de contar la ocurrencia total de todos los elementos de la lista usando Python. También veremos los pros y los contras de hacer esto.

Python es un lenguaje muy versátil que permite a los desarrolladores centrarse en el problema clave, no en su implementación. Es comparativamente más fácil codificar en Python que en otros lenguajes contemporáneos como C o C++.

El problema de la frecuencia de los elementos se puede resolver de varias formas a través de Python. Primero, presentemos formalmente el problema.

Considere una lista desordenada de números como Lista A= [2, 4, 7, 8, 12, 4, 6, 7, 8, 91, 8], y queremos obtener la frecuencia de cada número en la lista para comprobar cuántas veces aparece un número en la lista.

La respuesta debería ser como: {'2': 1, '4': 2, '6': 1, '7': 2, '8': 3, '12': 1, '91': 1 }. Significa que el número 2 existe 1 vez, 4 existe 2 veces, 6 tiene una frecuencia de 1, y así sucesivamente.

Use el módulo colecciones para obtener las frecuencias de los elementos de la lista usando Python

En este método, utilizaremos el módulo colecciones. La función de contador de este módulo devuelve un contenedor que realiza un seguimiento de cuántas veces aparece un número en la lista.

Vea el código a continuación.

import collections

a = [2, 4, 7, 8, 12, 4, 6, 7, 8, 91, 8]
counter = collections.Counter(a)
print(counter)
print(type(counter))

El código anterior produce el siguiente resultado.

Counter({8: 3, 4: 2, 7: 2, 2: 1, 12: 1, 6: 1, 91: 1})
<class 'collections.Counter'>

Puede usar el siguiente código para obtener los números únicos de un contenedor.

counter.keys()

La línea de código anterior da el siguiente resultado.

dict_keys([2, 4, 7, 8, 12, 6, 91])

Del mismo modo, para obtener el recuento de cada número único, puede ejecutar este código:

counter.values()

La salida es la siguiente:

dict_values([1, 2, 2, 3, 1, 1, 1])

Código manual para obtener frecuencias de elementos de lista usando Python

En el método 1, usamos el módulo colecciones para el conteo. Pero en este método, debemos hacer una codificación manual para obtener los resultados deseados.

El código de este enfoque es el siguiente:

List_numbers = [2, 4, 7, 8, 12, 4, 6, 7, 8, 91, 8]
dict_count = {}
for i, number in enumerate(List_numbers):
    if number in dict_count.keys():
        dict_count[number] = dict_count[number] + 1
    else:
        dict_count[number] = 1
print(dict_count)

Este es un código sencillo en el que usamos el tipo de diccionario para almacenar el conteo contra cada número. Las claves de un diccionario siempre son únicas, lo que significa que no se pueden duplicar.

El código anterior produce el siguiente resultado.

{2: 1, 4: 2, 7: 2, 8: 3, 12: 1, 6: 1, 91: 1}

La complejidad de este código es O(n).

Use NumPy para obtener las frecuencias de los elementos de la lista usando Python

En el módulo numpy, la función unique() brinda la flexibilidad de encontrar la frecuencia de cada elemento de la lista.

import numpy as np

List_numbers = [2, 4, 7, 8, 12, 4, 6, 7, 8, 91, 8]
print(np.unique(List_numbers, return_counts=True))

La función np.unique() se utiliza para encontrar los elementos únicos de una matriz. Devuelve los elementos únicos ordenados de una matriz.

El parámetro opcional return_counts nos permite obtener el recuento de elementos respectivo.

El código anterior genera:

(array([ 2,  4,  6,  7,  8, 12, 91]), array([1, 2, 1, 2, 3, 1, 1]))

Para obtener el conteo, puede usar:

np.unique(List_numbers, return_counts=True)[1]

En este artículo, propusimos diferentes formas de obtener el recuento de elementos de la lista en Python. Puede seleccionar entre los métodos discutidos según los recursos y la complejidad del tiempo.

Artículo relacionado - Python List