NumPy – multiplicación de arrays 3D

Una array 3D no es más que una colección (o una pila) de muchas arrays 2D, al igual que una array 2D es una colección/pila de muchos vectores 1D. Por lo tanto, la multiplicación de arrays de arrays 3D implica múltiples multiplicaciones de arrays 2D, que finalmente se reduce a un producto escalar entre sus vectores fila/columna.

Consideremos un ejemplo de array A de forma (3,3,2) multiplicada por otra array 3D B de forma (3,2,4).

Python

import numpy as np
  
np.random.seed(42)
  
A = np.random.randint(0, 10, size=(3, 3, 2))
B = np.random.randint(0, 10, size=(3, 2, 4))
  
print("A:\n{}, shape={}\nB:\n{}, shape={}".format(
  A, A.shape, B, B.shape))

PRODUCCIÓN:

La primera array es una pila de tres arrays 2D, cada una de forma (3,2), y la segunda array es una pila de 3 arrays 2D, cada una de forma (2,4).

La multiplicación de arrays entre estos dos implicará tres multiplicaciones entre arrays 2D correspondientes de A y B que tienen formas (3,2) y (2,4) respectivamente. En concreto, la primera multiplicación será entre A[0] y B[0], la segunda multiplicación será entre A[1] y B[1] y, por último, la tercera multiplicación será entre A[2] y B[ 2]. El resultado de cada multiplicación individual de arrays 2D será de forma (3,4). Por tanto, el producto final de las dos arrays 3D será una array de forma (3,3,4).

Realicemos esto usando código.

Python

C = np.matmul(A, B)
  
print("Product C:\n{}, shape={}".format(C, C.shape))

Producción:

Publicación traducida automáticamente

Artículo escrito por hemanthvenkata8 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *