Tema 3 · Fase 1, Programar con datos · Toda la ruta
Lo esencial
1Un arreglo de NumPy (ndarray) guarda muchos números del mismo tipo (dtype) en una forma (shape): (6, 4) son 6 filas y 4 columnas; una foto en color es (alto, ancho, 3) y un lote de fotos, (N, alto, ancho, 3).
2Las operaciones se aplican a todos los números a la vez. Se indexa con [fila, columna], se rebana con inicio:fin:paso y se filtra con condiciones, como notas[notas < 51].
3El eje es la dimensión que una operación recorre y hace desaparecer: sum(axis=0) suma hacia abajo y deja un número por columna; sum(axis=1) suma hacia la derecha y deja uno por fila.
4Broadcasting: dos formas se comparan de derecha a izquierda, y cada par de dimensiones tiene que ser igual o tener un 1, que se estira copiando. Si no, NumPy da un ValueError; keepdims=True o np.newaxis suelen arreglarlo.
5El producto punto multiplica dos vectores término a término y suma: dividido entre sus normas, mide qué tan parecidos son. Una matriz por un vector transforma el vector, y (m, n) @ (n, p) da (m, p).
6Cambiar un bucle por una operación vectorizada da el mismo resultado decenas o cientos de veces más rápido; se mide con time.perf_counter o con %timeit en Colab.