Moltiplicazione basata sugli elementi in NumPy
-
Moltiplicazione basata sugli elementi delgli array in Python usando il metodo
np.multiply()
-
Moltiplicazione basata sugli elementi delgli array in Python usando l’operatore
*
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]