Come moltiplicare due matrici o vettori in python
Nel linguaggio python per fare il prodotto riga per colonna tra due matrici o il prodotto scalare tra due vettori utilizzo la funzione dot() della libreria numpy.
dot(a,b)
Il primo argomento è la prima matrice o vettore. Il secondo argomento è la seconda matrice o vettore.
La funzione dot effettua la moltiplicazione riga per colonna.
La stessa funzione mi permette di calcolare il prodotto scalare tra due vettori.
$$ \vec{a} \cdot \vec{b} = \begin{pmatrix} a_1 & a_2 & a_3 \end{pmatrix} \cdot \begin{pmatrix} b_1 \\ b_2 \\ b_3 \end{pmatrix} $$
Nota. La funzione dot si trova nel modulo numpy. Pertanto, per usarla è necessario prima caricare la libreria nella memoria dell'interprete.
Un esempio pratico
Apro python e carico il modulo numpy.
import numpy as np
Poi definisco due matrici con la funzione array. Una matrice quadrata 2x2 e una matrice rettangolare 2x3.
Assegno le due matrici alle variabili a e b.
a=np.array([[1,2],[3,4]])
b=np.array([[5,6,7],[8,9,10]])
La prima matrice deve avere il numero di colonne uguali al numero di righe della seconda matrice.
Altrimenti il prodotto riga per colonna è impossibile.
Per moltiplicare le due matrici uso la funzione dot().
np.dot(a,b)
L'output della funzione è il seguente:
array([[21, 24, 27],
[47, 54, 61]])
La funzione dot() ha calcolato automaticamente il prodotto riga per colonna tra le due matrici.
Si tratta di un'altra matrice 2x3
A questo punto posso salvare il risultato in una variabile o visualizzarlo sullo schermo.
E così via.
Nota. La stessa funzione dot() mi permette anche la moltiplicazione tra una matrice e un vettore o tra due vettori. Basta ridefinire i due fattori con la funzione array() e ricalcolare il prodotto matriciale con la funzione dot()..