NumPy
El paquete fundamental para la computación científica con Python
¡NumPy 2.0 ha sido lanzado!
2024-06-17
Matrices N-dimensionales potentes
Rápida y versátil, la vectorización, indexación y conceptos de broadcasting de NumPy son los estándares de facto en el cálculo de matrices hoy en día.
Herramientas de cálculo numérico
NumPy ofrece funciones matemáticas completas, generadores de números aleatorios, rutinas de álgebra lineal, transformadas de Fourier, y más.
Código abierto
Distribuido bajo una [licencia BSD] liberal (https://github.com/numpy/numpy/blob/main/LICENSE.txt), NumPy es desarrollado y mantenido públicamente en GitHub por una vibrante, receptiva y diversa comunidad.
Interoperable
NumPy soporta una amplia gama de hardware y plataformas de computación, y funciona bien con librerías distribuidas, de GPU y de matrices dispersas.
Óptimo
El núcleo de NumPy está optimizado adecuadamente con código en C. Disfrute de la flexibilidad de Python con la velocidad del código compilado.
Fácil de usar
La sintaxis de alto nivel de NumPy lo hace accesible y productivo para programadores de cualquier formación o nivel de experiencia.
Prueba NumPy

Utilice el terminal interactivo para probar NumPy en el navegador

"""
To try the examples in the browser:
1. Type code in the input cell and press
   Shift + Enter to execute
2. Or copy paste the code, and click on
   the "Run" button in the toolbar
"""

# The standard way to import NumPy:
import numpy as np

# Create a 2-D array, set every second element in
# some rows and find max per row:

x = np.arange(15, dtype=np.int64).reshape(3, 5)
x[1:, ::2] = -99
x
# array([[  0,   1,   2,   3,   4],
#        [-99,   6, -99,   8, -99],
#        [-99,  11, -99,  13, -99]])

x.max(axis=1)
# array([ 4,  8, 13])

# Generate normally distributed random numbers:
rng = np.random.default_rng()
samples = rng.normal(size=2500)
samples

ECOSISTEMA

Casi todos los científicos que trabajan en Python recurren a la potencia de NumPy.

NumPy aporta la potencia de cálculo de lenguajes como C y Fortran a Python, un lenguaje mucho más fácil de aprender y utilizar. Con esta potencia viene la sencillez: una solución en NumPy suele ser clara y elegante.

La API de NumPy es el punto de partida cuando se escriben librerías para explotar hardware innovador, crear tipos de arreglos especializadas o añadir capacidades más allá de lo que NumPy proporciona.

Librería de arreglosCapacidades y áreas de aplicación
DaskDaskArreglos distribuidos y paralelismo avanzado para análisis, que permiten un rendimiento a escala.
CuPyCuPyLibrería de arreglos compatible con NumPy para cálculo acelerado en la GPU con Python.
JAXJAXTransformaciones componibles de programas NumPy: diferenciar, vectorizar, compilación justo-a-tiempo a GPU/TPU.
xarrayXarrayArreglos multidimensionales indexados y etiquetados para análisis y visualización avanzados.
sparseSparseLibrería de arreglos dispersos compatible con NumPy que se integra con el álgebra lineal dispersa de Dask y SciPy.
PyTorchPyTorchMarco de aprendizaje profundo que acelera el camino desde la creación de prototipos de investigación hasta la implantación en producción.
TensorFlowTensorFlowUna plataforma integral de aprendizaje automático para crear y desplegar fácilmente aplicaciones basadas en ML.
arrowArrowPlataforma de desarrollo multilingüe para datos y análisis columnares en memoria.
xtensorxtensorArreglos multidimensionales con difusión y computación perezosa para análisis numérico.
awkwardAwkward ArrayManipular datos similares a JSON con expresiones similares a NumPy.
uarrayuarraySistema de backend de Python que desacopla la API de la implementación; unumpy proporciona una API de NumPy.
tensorlytensorlyAprendizaje tensorial, álgebra y backends para usar de manera fluida NumPy, PyTorch, TensorFlow o CuPy.
Diagrama de las librerías de Python. Las cinco categorías son "Extraer, Transformar, Cargar", "Exploración de Datos", "Modelado de Datos", "Evaluación de Datos" y "Presentación de Datos".

NumPy es el núcleo de un rico ecosistema de librerías de ciencia de datos. Un flujo de trabajo exploratorio típico de ciencia de datos podría verse así:

Para grandes volúmenes de datos, Dask y Ray están diseñados para escalarse. Las implementaciones estables se basan en el versionado de datos (DVC), rastreo de experimentos (MLFlow), y automatización del flujo de trabajo (Airflow, Dagster y Prefect).

Diagrama de tres círculos superpuestos. Los círculos se denominan "Matemáticas", "Ciencias de la Computación" y "Conocimientos Especializados". En el centro del diagrama, con los tres círculos superpuestos, hay un área denominada "Ciencia de datos".

NumPy constituye la base de potentes librerías de aprendizaje automático como scikit-learn y SciPy. A medida que crece el aprendizaje automático, también lo hace la lista de librerías basadas en NumPy. Las capacidades de aprendizaje profundo de TensorFlow tienen amplias aplicaciones— entre ellas el reconocimiento de voz e imágenes, las aplicaciones basadas en texto, el análisis de series de tiempo y la detección de vídeo. PyTorch, otra librería de aprendizaje profundo, es popular entre los investigadores de visión artificial y procesamiento del lenguaje natural.

Las técnicas estadísticas denominadas métodos ensemble, como binning, bagging, stacking y boosting, se encuentran entre los algoritmos de ML implementados por herramientas como XGBoost, LightGBM y CatBoost — uno de los motores de inferencia más rápidos. Yellowbrick y Eli5 ofrecen visualizaciones de aprendizaje automático.

Un diagrama de flujo hecho en matplotlib
Un diagrama de dispersión hecho en ggpy
Un diagrama de caja hecho en plotly
Un diagrama de flujo hecho en altair
Un gráfico de pares de dos tipos de gráficos, un gráfico de trazado y un gráfico de frecuencias hecho en seaborn
Un renderizado de volumen 3D realizado en PyVista.
Una imagen multidimensional hecha en napari.
Un diagrama de Voronoi hecho en vispy.

NumPy es un componente esencial en el floreciente panorama de visualización de Python, que incluye Matplotlib, Seaborn, Plotly, Altair, Bokeh, Holoviz, Vispy, Napari, y PyVista, por nombrar algunos.

El procesamiento acelerado de arreglos de gran tamaño de NumPy permite a los investigadores visualizar conjuntos de datos mucho mayores a los que el Python nativo podría manejar.

CASOS DE ESTUDIO