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:

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: >
_images/a0499ea350f398b892b2bded33136ba73331be4ff4a1e55b735c304e3acde70c.png