NumPy
22 pasos en 8 series de Python.
NumPy es la capa sobre la que está parada casi toda biblioteca científica de Python, y el arreglo es la única idea que contiene. Este tour construye uno, le cambia la forma, lo indexa de todas las maneras que NumPy permite y hace aritmética sobre él sin un solo bucle a la vista.
Las partes en las que vale la pena frenar son el broadcasting, que resulta elegante o desconcertante según el día, y la diferencia entre una vista y una copia, que es donde viven los bugs sorpresivos. Los dtypes, la generación aleatoria y el guardado de arreglos lo completan.
Arreglos
- Crear arreglosLos constructores de arreglos y las bases de la forma en NumPy.
- Indexación de arreglosCortes, indexación avanzada y máscaras booleanas.
Matemática y formas
- BroadcastingCombinar arreglos de formas distintas sin bucles.
- Agregación por ejesReducir arreglos con mean, sum y compañía por eje.
- Estadística descriptivaResumir una muestra con las funciones de estadística de NumPy.
- Álgebra linealProductos de matrices y el kit de linalg.
Selección y azar
- Selección condicional y ordenamientoElegir, acotar y ordenar valores de arreglos sin bucles.
- Números aleatoriosLa API moderna de Generator para aleatoriedad reproducible.
Tipos y formas
- dtypes del arregloUn solo dtype para todo el arreglo es lo que hace a numpy rápido y estricto.
- Cambiar de formaEl mismo buffer con otra forma — siempre que los tamaños coincidan.
- Apilar y dividirUnir arreglos por un eje nuevo o existente, y volver a cortarlos.
- Broadcasting, con precisiónLas formas se alinean desde la derecha; una dimensión de uno se estira.
Indexación
- Máscaras booleanasUn arreglo booleano selecciona, cuenta y asigna en una sola expresión.
- Indexación avanzadaIndexar con arreglos de posiciones, que copia en lugar de dar vistas.
- El argumento axisaxis=0 baja por las filas, axis=1 cruza por las columnas.
Matemática y memoria
- Funciones universalesMatemática elemento a elemento que itera en C, no en Python.
- Vistas y copiasUn corte da una vista; olvidarlo es la forma en que numpy sorprende a la gente.
- Resolver sistemas linealessolve es la respuesta correcta; invertir la matriz no lo es.
- Por qué vectorizarLa misma suma de tres maneras, y la razón por la que numpy existe.
Aleatoriedad y almacenamiento
- La API Generatornp.random.default_rng es la fuente moderna de aleatoriedad con semilla.
- Guardar arreglosnpy para un arreglo, npz para varios, savetxt cuando un humano debe leerlo.
Bis
- np_kmeans.pyAgrupar puntos 2-D con el k-means de Lloyd en NumPy.