Moltiplicazioni tra matrici
Lezione 18 di 18 del corso Fondamenti di NumPy di Coddy.
La moltiplicazione di matrici è una serie di prodotti scalari che produce una nuova matrice.
Come funziona?
Supponiamo di avere due matrici A con forma (3, 2) e B con forma (2, 4).
La moltiplicazione di A e B darà una nuova matrice con forma (3, 4).
Le dimensioni interne delle matrici devono coincidere (in questo caso sia A che B hanno 2 -> (3,2)(2,4)=(3,4))
la moltiplicazione di A*b è il
- il prodotto scalare della riga 1 di A per la colonna 1 di B è il risultato dell'elemento in [1, 1]
- il prodotto scalare della riga 1 di A per la colonna 2 di B è il risultato dell'elemento in [1, 2]
- ...
- ...
- il prodotto scalare della riga 2 di A per la colonna 1 di B è il risultato dell'elemento in [2, 1]
- il prodotto scalare della riga 2 di A per la colonna 2 di B è il risultato dell'elemento in [2, 2]
- ...
- ...
- ecc.
Esempio:
Matrice A:
| 1 | 2 |
| 3 | 4 |
| 5 | 6 |
Matrice B:
| 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 |
Risultato:
| 1*7 + 2*11 | 1*8 + 2*12 | 1*9 + 2*13 | 1*10 + 2*14 |
| 3*7 + 4*11 | 3*8 + 4*12 | 3*9 + 4*13 | 3*10 + 4*14 |
| 5*7 + 6*11 | 5*8 + 6*12 | 5*9 + 6*13 | 5*10 + 6*14 |
E dopo aver calcolato:
| 29 | 32 | 35 | 38 |
| 65 | 72 | 79 | 86 |
| 101 | 112 | 123 | 134 |
Come farlo con numpy?
Ci sono 3 modi per moltiplicare le matrici:
np.matmul(matrix1, matrix2)matrix1.dot(matrix2)A @ B
import numpy as np
A = np.array([[1, 2], [3, 4], [5, 6]])
B = np.array([[7, 8, 9, 10], [11, 12, 13, 14]])
np.matmul(A,B)Output:
array([[ 29, 32, 35, 38],
[ 65, 72, 79, 86],
[101, 112, 123, 134]])Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Sfida
Crea una funzione chiamata matrix_master che riceva tre liste Python e restituisca la moltiplicazione matriciale delle prime due liste ed esegua un prodotto scalare del risultato con l'ultima lista
Provalo tu
import numpy as np
def matrix_master(lst1, lst2, lst3):
# complete
Tutte le lezioni di Fondamenti di NumPy
2Creazione di array N-dimensionali
Dimensione superioreComprendere le formeRiempimento con valori fissiTipi NumPyIntervalloRimodellamentoEsercitati da solo: Compilatore Python online