Fundamentos de la difusión (broadcasting) en NumPy

Beginner

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 de la misma forma

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]

Intentando sumar dos matrices unidimensionales con diferentes formas

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 la difusión (broadcasting) para sumar dos matrices unidimensionales con diferentes formas

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.

Difusión (broadcasting) de 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.