"""
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
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 arreglos | Capacidades y áreas de aplicación | |
Dask | Arreglos distribuidos y paralelismo avanzado para análisis, que permiten un rendimiento a escala. | |
CuPy | Librería de arreglos compatible con NumPy para cálculo acelerado en la GPU con Python. | |
JAX | Transformaciones componibles de programas NumPy: diferenciar, vectorizar, compilación justo-a-tiempo a GPU/TPU. | |
Xarray | Arreglos multidimensionales indexados y etiquetados para análisis y visualización avanzados. | |
Sparse | Librería de arreglos dispersos compatible con NumPy que se integra con el álgebra lineal dispersa de Dask y SciPy. | |
PyTorch | Marco de aprendizaje profundo que acelera el camino desde la creación de prototipos de investigación hasta la implantación en producción. | |
TensorFlow | Una plataforma integral de aprendizaje automático para crear y desplegar fácilmente aplicaciones basadas en ML. | |
Arrow | Plataforma de desarrollo multilingüe para datos y análisis columnares en memoria. | |
xtensor | Arreglos multidimensionales con difusión y computación perezosa para análisis numérico. | |
Awkward Array | Manipular datos similares a JSON con expresiones similares a NumPy. | |
uarray | Sistema de backend de Python que desacopla la API de la implementación; unumpy proporciona una API de NumPy. | |
tensorly | Aprendizaje tensorial, álgebra y backends para usar de manera fluida NumPy, PyTorch, TensorFlow o CuPy. |
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í:
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.
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.