Multiplicação Element-Wise no NumPy

Muhammad Waiz Khan 30 janeiro 2023
  1. Multiplicação elementar de arrays em Python usando o método np.multiply()
  2. Multiplicação Element-Wise de Matrices em Python Usando o Operador *
Multiplicação Element-Wise no NumPy

Este tutorial explicará vários métodos para realizar a multiplicação de arrays por elemento em Python. Na multiplicação de array por elemento (também conhecida como Produto de Hadamard), cada elemento da primeira matriz é multiplicado pelo elemento correspondente da segundo array.

Ao realizar a multiplicação do array por elemento, ambas as arrays devem ter as mesmas dimensões. A matriz resultante c da multiplicação de array elemento a elemento a*b = c tem sempre a mesma dimensão que em a e b.

Podemos realizar a multiplicação por elemento em Python usando os seguintes métodos:

Multiplicação elementar de arrays em Python usando o método np.multiply()

O método np.multiply(x1, x2) da biblioteca NumPy do Python recebe duas arrays x1 e x2 como entrada, realiza a multiplicação elemento a elemento na entrada e retorna a matriz resultante como entrada.

Portanto, precisamos passar as duas arrays como entrada para o método np.multiply() para realizar a entrada elemento a elemento. O código de exemplo a seguir demonstra como usar np.multiply() para realizar a multiplicação elemento a elemento de duas arrays em 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))

Resultado:

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

Também podemos realizar a multiplicação elemento a elemento de linhas, colunas ou subarrays específicas das arrays usando o método np.multiply(). Precisamos passar as linhas, colunas ou subarrays específicas das arrays para o método np.multiply(). Como na multiplicação de array por elemento, o tamanho das linhas, colunas ou subarrays passadas como primeiro e segundo operando para multiplicação também deve ser o mesmo.

O código de exemplo abaixo demonstra como implementar a multiplicação de linhas, colunas ou subarrays de duas arrays em 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]))

Resultado:

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

Multiplicação Element-Wise de Matrices em Python Usando o Operador *

Também podemos usar o operador * com as arrays para realizar a multiplicação de arrays por elemento. O operador *, quando usado com as arrays em Python, retorna un array resultante da multiplicação do array elemento a elemento.

O código de exemplo a seguir demonstra como usar o operador * para realizar a multiplicação matricial elemento a elemento em 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)

Resultado:

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

Também podemos usar o operador * para realizar a multiplicação elemento-a-elemento de linhas, colunas e subarrays das arrays da seguinte maneira em 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])

Resultado:

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

Artigo relacionado - NumPy Matrix