Tengo dos matrices tridimensionales, A y B. La matriz A es la misma que la anterior con forma (2,3,4). El conjunto B se define como:
1B = np.arange(8).reshape(2,1,4)
pitón

Y tiene la forma:
1B.shape
pitón
Salida:
1(2,1,4)
pitón
Y tiene el valor:
Salida:
12array([[[0,1,2,3]],[[4,5,6,7]]])
pitón
Para saber si una operación aritmética es posible con estas dos matrices, sólo hay que revisar las reglas. Las dimensiones de entrada y salida coinciden. Y, para la otra dimensión, una de las dimensiones es una. Así que una operación aritmética es posible.
1A+B
pitón
Salida:
1234567array([[[0,2,4,6],[4,6,8,10],[8,10,12,14]],[[16,18,20,22],[20,22,24,26],[24,26,28,30]]])
pitón
Pero si tratas de añadir dos matrices que no pueden ser emitidas debido a formas incompatibles, obtendrás un error.
12B = np.arange(18).reshape(2,3,3)A+B
pitón
Salida:
1ValorError: los operandos no podían ser emitidos junto con las formas (2,3,4)(2,3,3)
pitón
Aquí, el problema es con la dimensión de seguimiento:
En general, se puede observar la forma de las matrices de entrada y decidir si la radiodifusión permitirá realizar la operación o no. También puedes predecir la forma de la matriz final que es el tamaño más alto a lo largo de cada dimensión en las matrices de entrada.
Por ejemplo, en una operación aritmética se pueden utilizar los siguientes pares de matrices:
(3,2) y (1,) produce el conjunto de salida (3,2)(3,1,4,1) y (1,7,4,3) produce el conjunto de salida (3,7,4,3)
Los siguientes pares de matrices no pueden ser utilizados en una operación aritmética debido a la falta de coincidencia de tamaño en la dimensión de seguimiento:
(3,2) y (1,3)(3,1,4,2) y (1,7,4,3)