logo

NumPy matrično množenje v Pythonu

Množenje matrike je operacija, ki ustvari eno samo matriko tako, da vzame dve matriki kot vhod in pomnoži vrstice prve matrike v stolpec druge matrike. Upoštevajte, da moramo zagotoviti, da mora biti število vrstic v prvi matriki enako številu stolpcev v drugi matriki.

NumPy matrično množenje v Pythonu

V Pythonu je postopek množenja matrik z uporabo NumPy znan kot vektorizacija . Glavni cilj vektorizacije je odstraniti ali zmanjšati za zanke ki smo jih izrecno uporabljali. Z zmanjšanjem zank 'for' iz programov omogoča hitrejše računanje. Vgrajeni paket NumPy se uporablja za manipulacijo in obdelavo nizov.

To so tri metode, s katerimi lahko izvedemo množenje matrike numpy.

  1. Prva je uporaba funkcije multiply(), ki izvede množenje matrike po elementih.
  2. Druga je uporaba funkcije matmul(), ki izvede matrični produkt dveh nizov.
  3. Zadnja je uporaba funkcije dot(), ki izvede pikčasti produkt dveh nizov.

Primer 1: Elementno matrično množenje

 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 

V zgornji kodi

  • Uvozili smo numpy z vzdevkom np.
  • Ustvarili smo array1 in array2 s funkcijo numpy.array() z dimenzijo 3.
  • Ustvarili smo spremenljivko rezultat in dodelili vrnjeno vrednost funkcije np.multiply().
  • Posredovali smo matriko array1 in array2 v np.multiply().
  • Nazadnje smo poskušali natisniti vrednost rezultata.

V izhodu je bila prikazana tridimenzionalna matrika, katere elementi so rezultat množenja elementov array1 in array2 po elementih.

Izhod:

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

Primer 2: Matrični izdelek

 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 

Izhod:

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

V zgornji kodi

  • Uvozili smo numpy z vzdevkom np.
  • Ustvarili smo array1 in array2 s funkcijo numpy.array() z dimenzijo 3.
  • Ustvarili smo spremenljivko rezultat in dodelili vrnjeno vrednost funkcije np.matmul().
  • V np.matmul() smo posredovali matriki array1 in array2.
  • Nazadnje smo poskusili natisniti vrednost rezultata.

V izhodu je bila prikazana tridimenzionalna matrika, katere elementi so produkt elementov array1 in array2.

k algoritem najbližjega soseda

Primer 3: pikčasti produkt

To so naslednje specifikacije za numpy.dot:

  • Ko sta a in b 1-D (enodimenzionalni) nizi-> Notranji produkt dveh vektorjev (brez kompleksne konjugacije)
  • Ko sta a in b 2-D (dvodimenzionalni) nizi -> Matrično množenje
  • Ko sta a ali b 0-D (znano tudi kot skalar) -> Pomnožite z uporabo numpy.multiply(a, b) ali a * b.
  • Ko je a polje N-D in b je polje 1-D -> Seštej produkt na zadnji osi a in b.
  • Ko je a niz N-D in b je niz M-D pod pogojem, da je M>=2 -> Seštevek zmnožka na zadnji osi a in predzadnji osi b:
    Tudi pika(a, b)[i,j,k,m] = vsota(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 

V zgornji kodi

  • Uvozili smo numpy z vzdevkom np.
  • Ustvarili smo array1 in array2 s funkcijo numpy.array() z dimenzijo 3.
  • Ustvarili smo spremenljivko rezultat in dodelili vrnjeno vrednost funkcije np.dot().
  • V np.dot() smo posredovali matriki array1 in array2.
  • Nazadnje smo poskušali natisniti vrednost rezultata.

V izhodu je bila prikazana tridimenzionalna matrika, katere elementi so pikčasti produkt obeh elementov array1 in array2.

Izhod:

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