Matrixmultiplikation er en operation, der tager to matricer som input og producerer en enkelt matrix ved at multiplicere rækker af den første matrix til kolonnen i den anden matrix. I matrixmultiplikation skal du sørge for, at antallet af kolonner i den første matrix skal være lig med antallet af rækker i den anden matrix.
Eksempel: Multiplikation af to matricer med hinanden i størrelsen 3×3.
Input:matrix1 = ([1, 2, 3], [3, 4, 5], [7, 6, 4]) matrix2 = ([5, 2, 6], [5, 6, 7], [7, 6, 4]) Output : [[36 32 32] [70 60 66] [93 74 100]]>
Metoder til at multiplicere to matricer i python
1. Brug af eksplicit til loops: Dette er en simpel teknik til at multiplicere matricer, men en af de dyre metoder til større inputdatasæt. I denne bruger vi indlejrede til sløjfer for at gentage hver række og hver kolonne.
Hvis matrix1 er en n x m matrix og matrix2 er en m x l matrix.
Implementering:
Python3
# input two matrices of size n x m> matrix1>=> [[>12>,>7>,>3>],> >[>4> ,>5>,>6>],> >[>7> ,>8>,>9>]]> matrix2>=> [[>5>,>8>,>1>],> >[>6>,>7>,>3>],> >[>4>,>5>,>9>]]> res>=> [[>0> for> x>in> range>(>3>)]>for> y>in> range>(>3>)]> # explicit for loops> for> i>in> range>(>len>(matrix1)):> >for> j>in> range>(>len>(matrix2[>0>])):> >for> k>in> range>(>len>(matrix2)):> ># resulted matrix> >res[i][j]>+>=> matrix1[i][k]>*> matrix2[k][j]> print> (res)> |
javascript streng udskiftning
>
>Produktion
[[114, 160, 60], [74, 97, 73], [119, 157, 112]]>
I dette program har vi brugt nestet for loops til beregning af resultat, som vil iterere gennem hver række og kolonne i matricerne, til sidst vil det akkumulere summen af produktet i resultatet.
2. Brug af Numpy: Multiplikation ved hjælp af Numpy kender også som vektorisering, som hovedformålet er at reducere eller fjerne den eksplicitte brug af for loops i programmet, hvorved beregningen bliver hurtigere.
Numpy er en indbygget pakke i python til array-behandling og manipulation. Til større matrixoperationer bruger vi numpy python-pakke, som er 1000 gange hurtigere end iterativ én metode.
For detaljer om Numpy besøg venligst Link
Implementering:
Python3
# We need install numpy in order to import it> import> numpy as np> # input two matrices> mat1>=> ([>1>,>6>,>5>],[>3> ,>4>,>8>],[>2>,>12>,>3>])> mat2>=> ([>3>,>4>,>6>],[>5>,>6>,>7>],[>6>,>56>,>7>])> # This will return dot product> res>=> np.dot(mat1,mat2)> # print resulted matrix> print>(res)> |
>
sql klausuler
>
osi model lag
Produktion:
[[ 63 320 83] [ 77 484 102] [ 84 248 117]]>
Ved brug af nusset
Python3
# same result will be obtained when we use @ operator> # as shown below(only in python>3.5)> import> numpy as np> # input two matrices> mat1>=> ([>1>,>6>,>5>],[>3> ,>4>,>8>],[>2>,>12>,>3>])> mat2>=> ([>3>,>4>,>6>],[>5>,>6>,>7>],[>6>,>56>,>7>])> # This will return matrix product of two array> res>=> mat1 @ mat2> # print resulted matrix> print>(res)> |
>
>
Produktion:
[[ 63 320 83] [ 77 484 102] [ 84 248 117]]>
I ovenstående eksempel har vi brugt prikprodukt og i matematik er prikproduktet en algebraisk operation, der tager to lige store vektorer og returnerer et enkelt tal. Resultatet beregnes ved at gange de tilsvarende poster og lægge disse produkter sammen.