3.4. Librerías#
I. Librerías para Análisis de Datos y Manipulación#
Pandas
Estructuras de datos: Series y DataFrames
Manipulación y limpieza de datos
Operaciones de filtrado, agrupación y agregación
Visualización de datos
NumPy
Arrays y matrices multidimensionales
Funciones matemáticas y operaciones con arrays
Indexación y slicing de arrays
Integración con otras librerías, como Pandas y SciPy
SciPy
Integración con NumPy
Funciones científicas y matemáticas avanzadas
Álgebra lineal y optimización
Procesamiento de señales y estadísticas
II. Librerías de Aprendizaje Automático (Machine Learning)#
Scikit-learn
Modelos de clasificación y regresión
Técnicas de clustering y reducción de dimensionalidad
Evaluación y selección de modelos
Pipelines de procesamiento de datos
TensorFlow
Conceptos básicos de tensores y grafos computacionales
Construcción de modelos de aprendizaje profundo
Entrenamiento y optimización de modelos
Uso de TensorFlow para otras tareas de cálculo numérico
PyTorch
Tensores y autogradientes en PyTorch
Construcción y entrenamiento de redes neuronales
Transferencia de modelos entre PyTorch y TensorFlow
Implementación de modelos avanzados con PyTorch
III. Librerías para Visualización de Datos#
Matplotlib - Gráficos básicos: líneas, barras, dispersión, etc. - Personalización de gráficos y etiquetado - Gráficos en 3D y animaciones - Subplots y múltiples figuras
Seaborn - Visualizaciones estadísticas y gráficos complejos - Relación con DataFrames de Pandas - Customización de estilos y paletas de colores - Gráficos de distribución y relaciones
Plotly - Gráficos interactivos y dinámicos - Visualizaciones en 3D y mapas - Visualizaciones en la nube y colaborativas
IV. Librerías para Procesamiento de Texto y NLP#
NLTK (Natural Language Toolkit)
Procesamiento básico de texto: tokenización, stemming, etc.
Análisis de sentimientos y clasificación de texto
Extracción de entidades y relaciones
Creación de modelos de lenguaje y generación de texto
SpaCy
Procesamiento avanzado de texto y etiquetado POS (Part-of-Speech)
Reconocimiento de entidades nombradas
Análisis sintáctico y dependencias
Integración con otros modelos de aprendizaje automático
V. Librerías para Web Scraping y Automatización#
Requests
Realización de peticiones HTTP
Manipulación de respuestas y contenido web
Autenticación y manejo de cookies
BeautifulSoup
Análisis y extracción de datos HTML
Navegación y búsqueda en documentos HTML
Extracción de información estructurada de páginas web
3.4.1. Instalación#
Para instalar una librería en Python, se utiliza el comando pip install
pero ésto lo hacemos desde la terminal
para instalar una librería desde el notebook, se utiliza el comando !pip install
Una vez instalada la librería no es necesario hacerlo de nuevo
!pip install pandas
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pandas in /home/alejo/.local/lib/python3.10/site-packages (1.5.3)
Requirement already satisfied: numpy>=1.21.0 in /home/alejo/.local/lib/python3.10/site-packages (from pandas) (1.24.4)
Requirement already satisfied: pytz>=2020.1 in /home/alejo/.local/lib/python3.10/site-packages (from pandas) (2023.3.post1)
Requirement already satisfied: python-dateutil>=2.8.1 in /home/alejo/.local/lib/python3.10/site-packages (from pandas) (2.8.2)
Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil>=2.8.1->pandas) (1.16.0)
3.4.2. Uso#
Tenemos 3 formas de usar librerías
# importamos toda la libreria con un alias
import pandas
# importamos solo una parte de la librería
from numpy import random
# importamos todo lo que está en la librería sin un alias
from unidecode import *
# a los dos primeros métodos se les puede asignar un alias
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
Las librerías en python tienen una jerarquía:
Puedo acceder a los distintos niveles encadenandolos con un “.”
random.randint(1, 100, (10,10))
array([[57, 73, 91, 65, 36, 75, 70, 95, 61, 83],
[71, 46, 38, 45, 94, 37, 1, 8, 46, 3],
[51, 34, 2, 29, 75, 90, 43, 34, 99, 48],
[29, 37, 9, 31, 11, 84, 36, 84, 95, 63],
[47, 78, 60, 21, 48, 47, 25, 86, 3, 44],
[70, 2, 35, 40, 24, 91, 11, 62, 8, 19],
[76, 7, 11, 97, 36, 49, 72, 73, 81, 28],
[90, 2, 15, 48, 47, 32, 89, 42, 74, 78],
[38, 22, 19, 94, 30, 99, 53, 53, 61, 16],
[ 3, 76, 91, 64, 63, 32, 66, 97, 84, 97]])
unidecode('áéíóú')
'aeiou'
mesh = pd.DataFrame(random.randint(1, 100, (10,10)))
mesh
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 73 | 24 | 78 | 30 | 58 | 78 | 88 | 48 | 78 | 67 |
1 | 25 | 94 | 64 | 58 | 26 | 69 | 87 | 6 | 14 | 23 |
2 | 37 | 81 | 18 | 3 | 30 | 26 | 61 | 36 | 29 | 55 |
3 | 65 | 86 | 33 | 49 | 71 | 48 | 58 | 98 | 15 | 80 |
4 | 19 | 5 | 22 | 90 | 47 | 89 | 97 | 7 | 60 | 74 |
5 | 10 | 53 | 64 | 57 | 15 | 5 | 8 | 52 | 63 | 30 |
6 | 99 | 60 | 26 | 88 | 1 | 58 | 2 | 39 | 19 | 2 |
7 | 77 | 4 | 70 | 11 | 9 | 19 | 94 | 3 | 20 | 19 |
8 | 94 | 52 | 56 | 86 | 22 | 28 | 28 | 13 | 7 | 20 |
9 | 68 | 45 | 42 | 22 | 46 | 94 | 33 | 61 | 93 | 46 |
# plot mesh in 2d
sns.heatmap(mesh, cmap='viridis', annot=True, fmt='.0f')
<Axes: >