← Lumbre

Programación con Python para Datos · 2.º Arrays de NumPy y broadcasting

← Volver a todos los contenidos
Portada de Arrays de NumPy y broadcasting

Arrays de NumPy y broadcasting

✦ NumPy es el cimiento computacional de la ciencia de datos en Python: un array es un bloque de datos homogéneo sobre el que se opera entero, sin bucles · Programación con Python para Datos · Programación · y te lleva 4 minutos

Roadwise Consulting

Firmado y verificado · Fernando Castro

Objetivo: Crear arrays de NumPy, vectorizar operaciones y aplicar el broadcasting correctamente para operar con matrices de distinto tamaño.

4 min 18–30 años
Autoevaluación
Más
Arrays de NumPy y broadcasting

Herramientas de la lección

◉ Entrar a La Matrix Sorpréndeme

Sobre este contenido

Ir a

Volver a Objetos Cursos Explorar Mi cuenta Salir del modo estudio

Arrays de NumPy y broadcasting

Ilustracion de Python para datos: DataFrame, graficas y arrays de NumPy.
Python para ciencia de datos: NumPy, pandas y manipulacion de datos.

Mapa conceptual

  • Python para Datos
    • Entorno
      • pip
      • venv
      • Reproducibilidad
    • Funcional
      • Comprensiones
      • Lambda
      • map filter
    • Calidad
      • try except
      • pytest
      • Asserts
    • NumPy
      • Arrays
      • Broadcasting
      • Indexacion
    • Pandas
      • DataFrame
      • Groupby
      • Merge Join

¿Qué es un array?

Un array de NumPy es una cuadrícula de valores del mismo tipo, indexada por posiciones. A diferencia de una lista de Python, guarda los datos de forma contigua en memoria, lo que permite operaciones vectorizadas mucho más rápidas. Puede tener una, dos o más dimensiones.

Vectorización

Vectorizar es aplicar una operación a todos los elementos a la vez, sin escribir el bucle. Cuando sumas dos arrays con a + b, NumPy recorre los elementos internamente en código compilado. El resultado es el mismo que un bucle, pero órdenes de magnitud más rápido y mucho más legible.

Crear arrays

  1. np.array([1, 2, 3]) desde una lista; np.array([[1,2],[3,4]]) para una matriz.
  2. np.zeros(5), np.ones((2,3)), np.arange(0, 10, 2) generan estructuras al instante.
  3. np.linspace(0, 1, 11) reparte un rango en un número fijo de puntos, ideal para mallas.

dtype y forma

  • dtype: el tipo de dato que guardan todas las casillas (float64, int64, bool). Homogéneo por diseño.
  • shape: las dimensiones del array como tupla; (2, 3) significa 2 filas y 3 columnas.
  • size: número total de elementos; ndim: cuántas dimensiones tiene.
Inspeccionar estos atributos es el primer paso antes de operar.
AtributoQué informaEjemplo para una matriz 2x3
shapedimensiones(2, 3)
ndimnúmero de ejes2
sizetotal de elementos6
dtypetipo homogéneofloat64

¿Qué ventaja principal ofrece vectorizar con NumPy frente a un bucle Python elemento a elemento?

Broadcasting: la idea

El broadcasting es la regla que permite operar arrays de formas distintas sin copiar datos. NumPy «extiende» virtualmente el array más pequeño alineando sus ejes con el mayor, de derecha a izquierda, para que las formas sean compatibles. No duplica memoria: repite el valor sobre la marcha.

Reglas de compatibilidad

  • Se comparan las formas eje a eje empezando por la derecha.
  • Dos ejes son compatibles si son iguales, o si uno de ellos vale 1.
  • Un eje ausente (array con menos dimensiones) se trata como si valiera 1.

Ejemplo de broadcasting

Una matriz de forma (3, 4) y un vector de forma (4,) son compatibles: el vector se aplica a cada una de las tres filas. Una columna de forma (3, 1) se propaga a las cuatro columnas. Entender esto evita escribir bucles anidados para restar una media por columna, por ejemplo.

Broadcasting en la práctica

Estandarizar una matriz restando la media de cada columna y dividiendo por su desviación se resuelve en dos líneas gracias al broadcasting: las estadísticas por columna tienen la forma adecuada para propagarse sobre las filas. Es la operación detrás de innumerables preprocesamientos.

Errores frecuentes

  • Forzar formas incompatibles y recibir un error de broadcast que no se sabe leer.
  • Confundir una copia con una vista: modificar el resultado de un rebanado puede alterar el original.
  • Guardar datos mixtos en un array y descubrir que NumPy los promueve todos a texto.

El broadcasting copia físicamente el array pequeño tantas veces como sea necesario para igualar formas.

Cuándo NO usar arrays

Si tus filas tienen longitudes distintas o estructuras heterogéneas, un array rectangular no es la herramienta: ahí suelen encajar mejor una lista de objetos o un DataFrame de Pandas. El array brilla cuando los datos son una tabla numérica regular.

Clasifica cada operación:

Arrastra cada ficha a su categoría (o tócala y luego toca la categoría). También puedes usar el teclado.

Video complementario
Recurso audiovisual para reforzar los conceptos.

Tienes una matriz de temperaturas de forma (7, 24) (una semana por horas) y quieres restar la media de cada hora. Explica con tus palabras qué forma debe tener el vector de medias para que el broadcasting funcione y por qué.

Tu texto se guarda sólo en este dispositivo.

Las respuestas y tu progreso se guardan sólo en este dispositivo. Contenido firmado por su autoría mediante Lumbre.

Autoevaluación

Comprueba lo que aprendiste

2 preguntas · ves cada respuesta al momento · el resultado queda guardado en tu historial

Iniciar autoevaluación
Más sobre esta lección

Rutas vivas

¿Y ahora qué? Elige el camino por lo que necesitas

No es un listado al azar: cada camino responde una pregunta distinta y te dice por qué.

Otra forma de comprenderlo

✦ Explorar el universo completo
Explora temas relacionados

Conceptos

Comentarios

Inicia sesión para comentar.

Todavía no hay comentarios. Sé la primera persona en opinar.