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.
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.
- For det første er brugen af multiply()-funktionen, som udfører element-vis multiplikation af matrixen.
- For det andet er brugen af matmul()-funktionen, som udfører matrixproduktet af to arrays.
- 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]]]])