Gestor de paquetes y bibliotecas de Python

Un gestor de paquetes (o package manager) es un programa que ayuda a organizar las bibliotecas y las herramientas de un software en instancias, namespace, silos o entornos que facilitan el trabajo con varias bibliotecas y versiones.

En el aprendizaje automático o Machine Learning (ML), cuando un usuario trabaja con varias bibliotecas y programas, es imprescindible realizar un seguimiento de las versiones que funcionan bien juntas. Python tiene algunas docenas de versiones disponibles; PyTorch como “Stable 1.3 y Nightly”; TensorFlow tiene una docena de versiones 1. x y 2.0, y así sucesivamente. La mejor manera de organizar las bibliotecas en silos es con un gestor de paquetes Python. Hay varias opciones disponibles para los programadores y seleccionar una en lugar de otra es una cuestión de gustos. 

Yufeng Guo, Google Developer Advocate, ha presentado una visión general de alto nivel del trabajo con paquetes de Python. Aquí está un resumen de sus puntos:

  • Pip: es el gestor de paquetes integrado de Python, que ha estado disponible durante algún tiempo. La herramienta se puede utilizar para instalar fácilmente programas como TensorFlow, NumPy, Pandas, Jupyter y muchos más, incluidas sus dependencias.
  • “Hay dos paquetes para gestionar entornos PiP”:
    • Anaconda: distribución de Python que funciona bien para proyectos de ciencia de datos. “Reúne muchas de las herramientas en ciencia de datos y ML en una sola instalación”. Se utiliza para crear diferentes entornos para diferentes proyectos. Su gestor de paquetes se llama Conda.   
    • Virtualenv: “un paquete que permite la creación de entornos virtuales con nombre, donde los paquetes Pip se pueden almacenar en un entorno aislado”.
  • Pyenv: un programa (biblioteca) que se encuentra un nivel encima de Virtualenv y Anaconda. Se puede utilizar para controlar ambos programas y diferentes versiones de Python.

Bibliotecas de Python

Hay una serie de bibliotecas de Python disponibles como proyectos de código abierto. Algunos de los más populares son NumPy, SciPy, Pandas y Matplotlib.

En la siguiente ilustración, se muestra la pila de PyTorch.

Fuente: PyTorch

A continuación, un resumen de alto nivel de cuatro bibliotecas populares. 

NumPy

NumPy es un estándar en la comunidad científica. Contiene un amplio conjunto de funciones y funcionalidades matemáticas y es rápido. Existe un caso en el que un bloguero creó una prueba que “inicializó 14 matrices del tamaño 40000 X 40000, un millón de veces” y NumPy superó a PyTorch, pero no por mucho. En la comunidad científica, NumPy es conocida como la herramienta ideal para trabajar con arreglos (arrays) y matrices multidimensionales (columna/fila tipo matriz). 

SciPy

SciPy (Scientific Python) es una colección de bibliotecas de Python utilizadas para la informática científica y la ingeniería técnica. El ecosistema SciPy fue diseñado para trabajar con NumPy, Matplotlib, Sympy, Pandas e IPython. Uno de los paquetes de la colección es la Biblioteca SciPy que viene con los siguientes módulos

  • Integración numérica
  • Transformadas de Fourier
  • Procesamiento de señales y procesamiento de imágenes
  • Solucionadores de ODE
  • Interplotación
  • Optimización
  • Álgebra lineal
  • Estadísticas 

Pandas

Pandas es una biblioteca de Python construida sobre NumPy utilizada para el análisis y la manipulación de datos. Anteriormente, describimos cómo se usó Pandas para la preparación de datos. Tiene la capacidad de ingerir datos en bruto, limpiarlos, especialmente si faltan valores, y luego transformarlos. Estas son algunas de las características de Panda:

  • Trata con los datos que faltan.
  • Convierte datos desiguales y con índices diferentes en otras estructuras de Python y NumPy.
  • Admite slicing, subconjuntos, fusión, merging e indexación.
  • Permite el uso de pivotes y cambia la forma de los conjuntos de datos
  • “Realiza operaciones de combinación de aplicaciones divididas en conjuntos de datos” 

Matplotlib

Matplotlibe es una biblioteca de Python usada para trazado o plotting 2D. Se puede utilizar para “generar gráficos, histogramas, espectros de potencia, gráficos de barras, gráficos de error, diagramas de dispersión”, y más. Los paquetes de terceros pueden ampliar sus capacidades y viene con un gran número de módulos incluyendo Pyplot que le da una interfaz similar a MATLAB.

This image has an empty alt attribute; its file name is MPL_1.png
Fuente.

Scroll to Top