logo

NumPy množenje matrice u Pythonu

Množenje matrice je operacija koja proizvodi jednu matricu uzimajući dvije matrice kao ulaz i množeći retke prve matrice u stupac druge matrice. Imajte na umu da moramo osigurati da broj redaka u prvoj matrici bude jednak broju stupaca u drugoj matrici.

NumPy množenje matrice u Pythonu

U Pythonu je proces množenja matrice pomoću NumPy poznat kao vektorizacija . Glavni cilj vektorizacije je ukloniti ili smanjiti za petlje koje smo eksplicitno koristili. Smanjenjem petlji 'za' iz programa daje brže računanje. Ugrađeni paket NumPy koristi se za manipulaciju i obradu polja.

Ovo su tri metode pomoću kojih možemo izvesti numpy matrično množenje.

  1. Prvo je korištenje funkcije multiply(), koja izvodi množenje matrice po elementima.
  2. Drugo je korištenje funkcije matmul(), koja izvodi matrični umnožak dva niza.
  3. Posljednje je korištenje funkcije dot(), koja izvodi točkasti umnožak dva niza.

Primjer 1: Množenje matrice po elementima

 import numpy as np array1=np.array([[1,2,3],[4,5,6],[7,8,9]],ndmin=3) array2=np.array([[9,8,7],[6,5,4],[3,2,1]],ndmin=3) result=np.multiply(array1,array2) result 

U gornjem kodu

  • Uvezli smo numpy s alias imenom np.
  • Napravili smo array1 i array2 pomoću funkcije numpy.array() s dimenzijom 3.
  • Stvorili smo rezultat varijable i dodijelili vraćenu vrijednost funkcije np.multiply().
  • Proslijedili smo i niz array1 i array2 u np.multiply().
  • Na kraju smo pokušali ispisati vrijednost rezultata.

U izlazu je prikazana trodimenzionalna matrica čiji su elementi rezultat množenja elemenata array1 i array2 po elementima.

Izlaz:

 array([[[ 9, 16, 21], [24, 25, 24], [21, 16, 9]]]) 

Primjer 2: Matrični proizvod

 import numpy as np array1=np.array([[1,2,3],[4,5,6],[7,8,9]],ndmin=3) array2=np.array([[9,8,7],[6,5,4],[3,2,1]],ndmin=3) result=np.matmul(array1,array2) result 

Izlaz:

 array([[[ 30, 24, 18], [ 84, 69, 54], [138, 114, 90]]]) 

U gornjem kodu

  • Uvezli smo numpy s alias imenom np.
  • Napravili smo array1 i array2 pomoću funkcije numpy.array() s dimenzijom 3.
  • Stvorili smo rezultat varijable i dodijelili vraćenu vrijednost funkcije np.matmul().
  • Proslijedili smo i niz array1 i array2 u np.matmul().
  • Na kraju smo pokušali ispisati vrijednost rezultata.

U izlazu je prikazana trodimenzionalna matrica čiji su elementi produkt elemenata array1 i array2.

Primjer 3: Točkasti proizvod

Ovo su sljedeće specifikacije za numpy.dot:

  • Kada su i a i b 1-D (jednodimenzionalni) nizovi-> Unutarnji produkt dva vektora (bez kompleksne konjugacije)
  • Kada su i a i b 2-D (dvodimenzionalni) nizovi -> Matrično množenje
  • Kada je a ili b 0-D (također poznato kao skalar) -> Množi pomoću numpy.multiply(a, b) ili a * b.
  • Kada je a N-D niz, a b je 1-D niz -> zbroji produkt preko zadnje osi a i b.
  • Kada je a N-D niz, a b je M-D niz pod uvjetom da je M>=2 -> Zbrojni umnožak preko zadnje osi a i pretposljednje osi b:
    Također, točka(a, b)[i,j,k,m] = zbroj(a[i,j,:] * b[k,:,m])
 import numpy as np array1=np.array([[1,2,3],[4,5,6],[7,8,9]],ndmin=3) array2=np.array([[9,8,7],[6,5,4],[3,2,1]],ndmin=3) result=np.dot(array1,array2) result 

U gornjem kodu

javascript prozor.otvori
  • Uvezli smo numpy s alias imenom np.
  • Napravili smo array1 i array2 pomoću funkcije numpy.array() s dimenzijom 3.
  • Stvorili smo rezultat varijable i dodijelili vraćenu vrijednost funkcije np.dot().
  • Proslijedili smo i niz array1 i array2 u np.dot().
  • Na kraju smo pokušali ispisati vrijednost rezultata.

U izlazu je prikazana trodimenzionalna matrica čiji su elementi točkasti umnožak elemenata array1 i array2.

Izlaz:

 array([[[[ 30, 24, 18]], [[ 84, 69, 54]], [[138, 114, 90]]]])