Moltiplicazione basata sugli elementi in NumPy

Muhammad Waiz Khan 30 gennaio 2023
  1. Moltiplicazione basata sugli elementi delgli array in Python usando il metodo np.multiply()
  2. Moltiplicazione basata sugli elementi delgli array in Python usando l’operatore *
Moltiplicazione basata sugli elementi in NumPy

Questo tutorial spiegherà vari metodi per eseguire la moltiplicazione di matrici per elementi in Python. Nella moltiplicazione di un array per elemento (nota anche come prodotto Hadamard), ogni elemento della prima matrice viene moltiplicato per l’elemento corrispondente della seconda matrice.

Quando si esegue la moltiplicazione di un array per elemento, entrambe gli array devono avere le stesse dimensioni. La matrice risultante c della moltiplicazione di un array per elemento a*b = c ha sempre la stessa dimensione di quella in a e b.

Possiamo eseguire la moltiplicazione in base agli elementi in Python utilizzando i seguenti metodi:

Moltiplicazione basata sugli elementi delgli array in Python usando il metodo np.multiply()

Il metodo np.multiply(x1, x2) della libreria NumPy di Python prende due matrici x1 e x2 come input, esegue la moltiplicazione per elemento in input e restituisce la matrice risultante come input.

Pertanto, dobbiamo passare le due matrici come input al metodo np.multiply() per eseguire l’input in termini di elementi. Il codice di esempio seguente mostra come utilizzare np.multiply() per eseguire la moltiplicazione per elementi di due matrici in 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))

Produzione:

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

Possiamo anche eseguire la moltiplicazione per elemento di righe, colonne o sotto-matrici specifiche delgli array usando il metodo np.multiply(). Dobbiamo passare le righe, le colonne o le sottomatrici specifiche delgli array al metodo np.multiply(). Come nella moltiplicazione di un array per elemento, anche la dimensione delle righe, delle colonne o delle sottomatrici passate come primo e secondo operando per la moltiplicazione dovrebbe essere la stessa.

Il codice di esempio seguente mostra come implementare la moltiplicazione in termini di elementi di righe, colonne o sotto-matrici di due matrici in 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]))

Produzione:

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

Moltiplicazione basata sugli elementi delgli array in Python usando l’operatore *

Possiamo anche usare l’operatore * con gli array per eseguire la moltiplicazione di matrici per elemento. L’operatore *, quando usato con gli array in Python, restituisce un array risultante della moltiplicazione di un array per elemento.

Il codice di esempio seguente mostra come utilizzare l’operatore * per eseguire la moltiplicazione matriciale per elementi in 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)

Produzione:

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

Possiamo anche usare l’operatore * per eseguire la moltiplicazione per elemento di righe, colonne e sotto-matrici delgli array nel modo seguente in 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])

Produzione:

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

Articolo correlato - NumPy Matrix