logo

NumPy Matrix Multiplikation i Python

Multiplikation af matrix er en operation, der producerer en enkelt matrix ved at tage to matricer som input og multiplicere rækker af den første matrix til kolonnen i den anden matrix. Bemærk, at vi skal sikre, at antallet af rækker i den første matrix skal være lig med antallet af kolonner i den anden matrix.

NumPy Matrix Multiplikation i Python

I Python er processen med matrixmultiplikation ved hjælp af NumPy kendt som vektorisering . Hovedformålet med vektorisering er at fjerne eller reducere til sløjfer som vi eksplicit brugte. Ved at reducere 'for'-løkker fra programmer giver det hurtigere beregning. Den indbyggede pakke NumPy bruges til manipulation og array-behandling.

Disse er tre metoder, hvorigennem vi kan udføre numpy matrix multiplikation.

  1. For det første er brugen af ​​multiply()-funktionen, som udfører element-vis multiplikation af matrixen.
  2. For det andet er brugen af ​​matmul()-funktionen, som udfører matrixproduktet af to arrays.
  3. Sidst er brugen af ​​dot()-funktionen, som udfører dot-produkt af to arrays.

Eksempel 1: Grundstofvis matrixmultiplikation

 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 ovenstående kode

  • Vi har importeret numpy med alias navn np.
  • Vi har oprettet et array1 og array2 ved hjælp af numpy.array() funktion med dimension 3.
  • Vi har oprettet et variabelt resultat og tildelt den returnerede værdi af funktionen np.multiply().
  • Vi har bestået både array array1 og array2 i np.multiply().
  • Til sidst forsøgte vi at udskrive værdien af ​​resultatet.

I outputtet er der vist en tredimensionel matrix, hvis elementer er resultatet af den elementvise multiplikation af både array1 og array2 elementer.

Produktion:

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

Eksempel 2: Matrixprodukt

 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 

Produktion:

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

I ovenstående kode

  • Vi har importeret numpy med alias navn np.
  • Vi har oprettet array1 og array2 ved hjælp af numpy.array() funktion med dimension 3.
  • Vi har oprettet et variabelt resultat og tildelt den returnerede værdi af funktionen np.matmul().
  • Vi har bestået både array array1 og array2 i np.matmul().
  • Til sidst forsøgte vi at udskrive værdien af ​​resultatet.

I outputtet er der vist en tredimensionel matrix, hvis elementer er produktet af både array1 og array2 elementer.

Eksempel 3: Punktprodukt

Dette er følgende specifikationer for numpy.dot:

  • Når både a og b er 1-D (en-dimensionelle) arrays-> Indre produkt af to vektorer (uden kompleks konjugation)
  • Når både a og b er 2-D (todimensionelle) arrays -> Matrix multiplikation
  • Når enten a eller b er 0-D (også kendt som en skalar) -> Multiplicer ved at bruge numpy.multiply(a, b) eller a * b.
  • Når a er et N-D-array, og b er et 1-D-array -> Sumprodukt over den sidste akse af a og b.
  • Når a er et N-D-array, og b er et M-D-array, forudsat at M>=2 -> Sumprodukt over den sidste akse af a og den næstsidste akse af b:
    Også dot(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 ovenstående kode

  • Vi har importeret numpy med alias navn np.
  • Vi har oprettet array1 og array2 ved hjælp af numpy.array() funktion med dimension 3.
  • Vi har oprettet et variabelt resultat og tildelt den returnerede værdi af funktionen np.dot() .
  • Vi har bestået både array array1 og array2 i np.dot().
  • Til sidst forsøgte vi at udskrive værdien af ​​resultatet.

I outputtet er der vist en tredimensionel matrix, hvis elementer er prikproduktet af både array1 og array2 elementer.

Produktion:

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