Python tiene muchos módulos geniales listos para usar. Una de las más útiles son las colecciones . Contiene "tipos especializados para crear contenedores", que son alternativas al dict universal, list , set y tuple . A continuación observamos tres clases contenidas en el módulo que la mayoría de los pitonistas han encontrado pero que constantemente olvidan poner en práctica.
NombradoTupla
Es difícil sobreestimar la utilidad de las tuplas con nombre para los científicos de datos. Digamos que está creando un nuevo modelo, agregando constantemente nuevas características a la lista, que luego planea alimentar el marco de aprendizaje automático. Con un aumento en el número de características, tarde o temprano comenzará a confundirse y olvidará qué índice es responsable de qué. Peor aún, si los colegas tienen que trabajar con su código: es posible que no entiendan nada en absoluto.
Solo un par de líneas pueden ordenar el guión . Ver:
from collections import namedtuple Features = namedtuple('Features', ['age', 'gender', 'name']) row = Features(age=22, gender='male', name='Alex') print(row.age)
Ahora, en lugar de especificar índices, puede usar nombres para acceder a las líneas de pedido, lo que hace que el código sea mucho más limpio y simple.
Contador
El contador , como su nombre lo indica, cuenta. Parece fácil, pero los científicos de datos deben seguir contando constantemente , por lo que la herramienta es extremadamente útil en la práctica.
Hay varias formas de crear un contador, pero la más simple es inicializarlo con una lista de valores:
from collections import Counter ages = [22, 22, 25, 25, 30, 24, 26, 24, 35, 45, 52, 22, 22, 22, 25, 16, 11, 15, 40, 30] value_counts = Counter(ages) print(value_counts.most_common())
Al ejecutar este código (que, por cierto, se puede hacer pasando el fragmento correspondiente a pythonanywhere.com/gists/ ), verá:
[(22, 5), (25, 3), (24, 2), (30, 2), (35, 1), (40, 1), (11, 1), (45, 1), (15, 1), (16, 1), (52, 1), (26, 1)]
Una lista de tuplas en orden decreciente de la prevalencia de valores, donde el primer elemento de la tupla es el valor y el segundo es con qué frecuencia aparece en la lista original. Un par de líneas de código resultaron ser suficientes para descubrir que "22" es la edad más común y ocurre 5 veces.
Defaultdict
Una de mis herramientas favoritas en la biblioteca estándar. DefaultDict : un diccionario con un valor predeterminado para cualquier clave nueva. Un ejemplo:
from collections import defaultdict my_default_dict = defaultdict(int) for letter in 'the red fox ran as fast as it could': my_default_dict[letter] += 1 print(my_default_dict)
Devoluciones:
defaultdict(<type 'int'>, {'a': 4, ' ': 8, 'c': 1, 'e': 2, 'd': 2, 'f': 2, 'i': 1, 'h': 1, 'l': 1, 'o': 2, 'n': 1, 's': 3, 'r': 2, 'u': 1, 't': 3, 'x': 1})
Cuando trabaje con un diccionario normal, deberá verificar constantemente si existe una clave e inicializar manualmente las claves inexistentes. En el ejemplo anterior, para cada clave inexistente, ya existe un valor predeterminado de 0. Esto le permite escribir código más limpio y más claro .
Además del número entero, DefaultDict a menudo se usa junto con una lista vacía para comenzar a agregar elementos sin una repetitiva.
Ir al código limpio!
Intente recordar si puede aplicar clases de colecciones a tareas que resolvió recientemente. A veces, "redescubrir" los módulos antiguos de la biblioteca estándar es más útil que dominar nuevas herramientas.