Multiplikasjon av matrise er en operasjon som produserer en enkelt matrise ved å ta to matriser som input og multiplisere rader i den første matrisen til kolonnen i den andre matrisen. Merk at vi må sørge for at antall rader i den første matrisen skal være lik antall kolonner i den andre matrisen.
I Python er prosessen med matrisemultiplikasjon ved bruk av NumPy kjent som vektorisering . Hovedmålet med vektorisering er å fjerne eller redusere for løkker som vi brukte eksplisitt. Ved å redusere 'for'-løkker fra programmer gir det raskere beregning. Den innebygde pakken NumPy brukes til manipulering og array-behandling.
Dette er tre metoder der vi kan utføre numpy matrise multiplikasjon.
- Først er bruken av multiply()-funksjonen, som utfører elementvis multiplikasjon av matrisen.
- For det andre er bruken av matmul()-funksjonen, som utfører matriseproduktet av to matriser.
- Den siste er bruken av dot()-funksjonen, som utfører dot-produkt av to matriser.
Eksempel 1: Elementvis matrisemultiplikasjon
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
I koden ovenfor
- Vi har importert numpy med alias navn np.
- Vi har laget en array1 og array2 ved å bruke numpy.array()-funksjonen med dimensjon 3.
- Vi har laget et variabelt resultat og tildelt den returnerte verdien av np.multiply() funksjonen.
- Vi har passert både array array1 og array2 i np.multiply().
- Til slutt prøvde vi å skrive ut verdien av resultatet.
I utgangen er det vist en tredimensjonal matrise hvis elementer er resultatet av den elementvise multiplikasjonen av både array1 og array2 elementer.
Produksjon:
array([[[ 9, 16, 21], [24, 25, 24], [21, 16, 9]]])
Eksempel 2: Matriseprodukt
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
Produksjon:
array([[[ 30, 24, 18], [ 84, 69, 54], [138, 114, 90]]])
I koden ovenfor
- Vi har importert numpy med alias navn np.
- Vi har laget array1 og array2 ved å bruke numpy.array()-funksjonen med dimensjon 3.
- Vi har laget et variabelresultat og tildelt den returnerte verdien til np.matmul()-funksjonen.
- Vi har passert både array array1 og array2 i np.matmul().
- Til slutt prøvde vi å skrive ut verdien av resultatet.
I utgangen er det vist en tredimensjonal matrise hvis elementer er produktet av både array1- og array2-elementer.
Eksempel 3: Punktprodukt
Dette er følgende spesifikasjoner for numpy.dot:
- Når både a og b er 1-D (en-dimensjonale) matriser-> indre produkt av to vektorer (uten kompleks konjugasjon)
- Når både a og b er 2-D (todimensjonale) matriser -> Matrisemultiplikasjon
- Når enten a eller b er 0-D (også kjent som en skalar) -> Multipliser ved å bruke numpy.multiply(a, b) eller a * b.
- Når a er en N-D-matrise og b er en 1-D-matrise -> Sumprodukt over den siste aksen til a og b.
- Når a er en N-D matrise og b er en M-D matrise forutsatt at M>=2 -> Sumprodukt over siste akse til a og nest siste akse til b:
Også punkt(a, b)[i,j,k,m] = sum(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
I koden ovenfor
- Vi har importert numpy med alias navn np.
- Vi har laget array1 og array2 ved å bruke numpy.array()-funksjonen med dimensjon 3.
- Vi har laget et variabelt resultat og tildelt den returnerte verdien til np.dot()-funksjonen.
- Vi har passert både array array1 og array2 i np.dot().
- Til slutt prøvde vi å skrive ut verdien av resultatet.
I utgangen er det vist en tredimensjonal matrise hvis elementer er punktproduktet av både array1 og array2 elementer.
Produksjon:
array([[[[ 30, 24, 18]], [[ 84, 69, 54]], [[138, 114, 90]]]])