Fundamentos de la difusión (broadcasting) en NumPy

NumPyNumPyBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Este tutorial presentará el concepto de difusión (broadcasting) en la biblioteca NumPy. La difusión es un método de realizar operaciones matemáticas en matrices de diferentes dimensiones.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Sumar dos matrices unidimensionales del mismo tamaño

import numpy as np

a = np.array([1,2,3,4])
b = np.array([2,7,8,9])
c = a+b;
print(c)

La salida será: [ 3 9 11 13]

Intentar sumar dos matrices unidimensionales con diferentes tamaños

import numpy as np

a = np.array([4,5,6,7])
b = np.array([1,3,5,7,9,11,14])
c = a+b;

Esto producirá un error porque no se pueden realizar operaciones en matrices con diferentes tamaños.

Usando difusión (broadcasting) para sumar dos matrices unidimensionales con diferentes tamaños

import numpy as np

a = np.array([4,5,6,7])
b = np.array([10])
c = a+b;

print(c)

Esto producirá la salida [14 15 16 17] ya que la matriz b se está difundiendo a través de la matriz a.

Difundir una matriz unidimensional en una matriz bidimensional

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([10, 20, 30])

print(a + b)

La salida será:

[[11 22 33]
 [14 25 36]]

La matriz unidimensional se difunde a través del segundo eje de la matriz bidimensional y se suma a cada columna.

Multiplicando matrices de diferentes dimensiones

import numpy as np

a = np.array([1, 2, 3])
b = np.array([[4, 5, 6], [7, 8, 9]])

print(a * b)

La salida será:

[[ 4 10 18]
 [ 7 16 27]]

La matriz unidimensional se difunde a través del primer eje de la matriz bidimensional y se multiplica por cada fila.

Resumen

En este tutorial, cubrimos el concepto de difusión (broadcasting) en la biblioteca NumPy. La difusión es un método de realizar operaciones matemáticas en matrices de varias dimensiones. También demostramos cómo funciona la difusión a través de la adición y multiplicación de matrices. Es importante tener en cuenta que la difusión solo se puede realizar si las matrices cumplen ciertas condiciones. La difusión solo ocurre si no conlleva una pérdida de información.