Multiplicación basada en elementos en NumPy

Muhammad Waiz Khan 30 enero 2023
  1. Multiplicación de matrices basada en elementos en Python usando el método np.multiply()
  2. Multiplicación de matrices basada en elementos en Python usando el operador *
Multiplicación basada en elementos en NumPy

Este tutorial explicará varios métodos para realizar la multiplicación de matrices por elementos en Python. En la multiplicación de matrices por elementos (también conocida como Producto Hadamard), cada elemento de la primera matriz se multiplica por el elemento correspondiente de la segundo array.

Al realizar la multiplicación de matrices por elementos, ambas matrices deben tener las mismas dimensiones. el array resultante c de la multiplicación matricial por elementos a*b = c siempre tiene la misma dimensión que la de a y b.

Podemos realizar la multiplicación por elementos en Python usando los siguientes métodos:

Multiplicación de matrices basada en elementos en Python usando el método np.multiply()

El método np.multiply(x1, x2) de la biblioteca NumPy de Python toma dos arrays x1 y x2 como entrada, realiza una multiplicación por elementos en la entrada y devuelve el array resultante como entrada.

Por lo tanto, necesitamos pasar las dos arrays como entrada al método np.multiply() para realizar la entrada de elementos. El siguiente código de ejemplo demuestra cómo utilizar np.multiply() para realizar la multiplicación por elementos de dos arrays en Python.

import numpy as np

a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])

print(np.multiply(a1, a2))

Producción :

[[ 180 1196   46  119   44]
 [  39   40   72    9   24]]

También podemos realizar la multiplicación por elementos de filas, columnas o submatrices específicas de los Arrays utilizando el método np.multiply(). Necesitamos pasar las filas, columnas o submatrices específicas de los Arrays al método np.multiply(). Al igual que en la multiplicación de matrices por elementos, el tamaño de las filas, columnas o submatrices pasadas como primer y segundo operando para la multiplicación también debe ser el mismo.

El siguiente código de ejemplo demuestra cómo implementar la multiplicación por elementos de filas, columnas o submatrices de dos arrays en Python.

import numpy as np

a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])

print(np.multiply(a1[0, :], a2[1, :]))
print(np.multiply(a1[1, :], a2[0, :]))
print(np.multiply(a1[:, 3], a2[:, 1]))

Producción :

[156 368 207  21   8]
[ 45 130  16  51 132]
[182  24]

Multiplicación de matrices basada en elementos en Python usando el operador *

También podemos usar el operador * con los Arrays para realizar la multiplicación de matrices por elementos. El operador *, cuando se usa con los Arrays en Python, devuelve un array resultante de la multiplicación de matrices por elementos.

El siguiente código de ejemplo demuestra cómo usar el operador * para realizar la multiplicación matricial por elementos en Python:

a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])

print(a1 * a2)

Producción :

[[ 180 1196   46  119   44]
 [  39   40   72    9   24]]

También podemos usar el operador * para realizar la multiplicación por elementos de filas, columnas y submatrices de los Arrays de la siguiente manera en Python.

import numpy as np

a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])

print(a1[0, :] * a2[1, :])
print(a1[1, :] * a2[0, :])
print(a1[:, 3] * a2[:, 1])

Producción :

[156 368 207  21   8]
[ 45 130  16  51 132]
[182  24]

Artículo relacionado - NumPy Matrix