logo

NumPy Matrix Multiplication i Python

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.

NumPy Matrix Multiplication i Python

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.

  1. Først er bruken av multiply()-funksjonen, som utfører elementvis multiplikasjon av matrisen.
  2. For det andre er bruken av matmul()-funksjonen, som utfører matriseproduktet av to matriser.
  3. 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]]]])