Multiplicación de dos arrays en una sola línea usando Numpy en Python

La multiplicación de arrays es una operación que toma dos arrays como entrada y produce una sola array al multiplicar las filas de la primera array por la columna de la segunda array. En la multiplicación de arrays, asegúrese de que el número de columnas de la primera array sea igual al número de filas de la segunda array

Ejemplo: Multiplicación de dos arrays entre sí de tamaño 3×3. 

Input:matrix1 = ([1, 2, 3],
                 [3, 4, 5],
                 [7, 6, 4])
      matrix2 = ([5, 2, 6],
                 [5, 6, 7],
                 [7, 6, 4])

Output : [[36 32 32]
          [70 60 66]
          [93 74 100]]

Métodos para multiplicar dos arrays en Python 

1. Uso de bucles for explícitos: esta es una técnica simple para multiplicar arrays, pero uno de los métodos costosos para conjuntos de datos de entrada más grandes. En esto, usamos bucles for anidados para iterar cada fila y cada columna. 

Si array1 es una array nxm y array2 es una array mxl .

Implementación:

Python3

# input two matrices of size n x m
matrix1 = [[12,7,3],
        [4 ,5,6],
        [7 ,8,9]]
matrix2 = [[5,8,1],
        [6,7,3],
        [4,5,9]]
 
res = [[0 for x in range(3)] for y in range(3)]
 
# explicit for loops
for i in range(len(matrix1)):
    for j in range(len(matrix2[0])):
        for k in range(len(matrix2)):
 
            # resulted matrix
            res[i][j] += matrix1[i][k] * matrix2[k][j]
 
print (res)
Producción

[[114, 160, 60], [74, 97, 73], [119, 157, 112]]

En este programa, hemos utilizado bucles anidados para el cálculo del resultado que iterarán a través de cada fila y columna de las arrays, al final acumularán la suma del producto en el resultado. 

2. Uso de Numpy: la multiplicación con Numpy también se conoce como vectorización, cuyo objetivo principal es reducir o eliminar el uso explícito de bucles for en el programa, por lo que el cálculo se vuelve más rápido. 
Numpy es una compilación en un paquete en python para el procesamiento y la manipulación de arrays. Para operaciones de array más grandes, usamos el paquete numpy python, que es 1000 veces más rápido que el método iterativo. 
Para obtener detalles sobre Numpy, visite el enlace

Implementación:

Python3

# We need install numpy in order to import it
import numpy as np
 
# input two matrices
mat1 = ([1, 6, 5],[3 ,4, 8],[2, 12, 3])
mat2 = ([3, 4, 6],[5, 6, 7],[6,56, 7])
 
# This will return dot product
res = np.dot(mat1,mat2)
 
 
# print resulted matrix
print(res)

Producción: 
 

[[ 63 320  83]
 [ 77 484 102]
 [ 84 248 117]]

Usando numpy 

Python3

# same result will be obtained when we use @ operator
# as shown below(only in python >3.5)
import numpy as np
 
# input two matrices
mat1 = ([1, 6, 5],[3 ,4, 8],[2, 12, 3])
mat2 = ([3, 4, 6],[5, 6, 7],[6,56, 7])
 
# This will return matrix product of two array
res = mat1 @ mat2
 
# print resulted matrix
print(res)

Producción: 
 

[[ 63 320  83]
 [ 77 484 102]
 [ 84 248 117]]

En el ejemplo anterior, hemos utilizado el producto punto y, en matemáticas, el producto punto es una operación algebraica que toma dos vectores de igual tamaño y devuelve un solo número. El resultado se calcula multiplicando las entradas correspondientes y sumando esos productos.

Este artículo es una contribución de Dheeraj Sharma . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *