Menu
Coddy logo textTech

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:

12
34
56

Matrice B:

78910
11121314

Risultato:

1*7 + 2*111*8 + 2*121*9 + 2*131*10 + 2*14
3*7 + 4*113*8 + 4*123*9 + 4*133*10 + 4*14
5*7 + 6*115*8 + 6*125*9 + 6*135*10 + 6*14

E dopo aver calcolato:

29323538
65727986
101112123134

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]])
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

challenge icon

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

Esercitati da solo: Compilatore Python online