Obtenga las frecuencias de los elementos de la lista usando Python
-
Use el módulo
colecciones
para obtener las frecuencias de los elementos de la lista usando Python - Código manual para obtener frecuencias de elementos de lista usando Python
-
Use
NumPy
para obtener 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
- Convertir un diccionario en una lista en Python
- Eliminar todas las apariciones de un elemento de una lista en Python
- Eliminar duplicados de una lista en Python
- Cómo obtener el promedio de una lista en Python
- ¿Cuál es la diferencia entre los métodos de lista que añaden y amplían
- Cómo convertir una lista en cadena en Python