Matrismultiplikation är en operation som tar två matriser som indata och producerar en enda matris genom att multiplicera rader i den första matrisen till kolumnen i den andra matrisen. Se till att vid matrismultiplikation antalet kolumner i den första matrisen ska vara lika med antalet rader i den andra matrisen.
Exempel: Multiplikation av två matriser med varandra i storleken 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 för att multiplicera två matriser i python
1. Använder explicit för loopar: Detta är en enkel teknik för att multiplicera matriser men en av de dyra metoderna för större indatauppsättningar. I detta använder vi kapslade för loopar för att iterera varje rad och varje kolumn.
katodstrålerörsmonitor
Om matris1 är en n x m matris och matris2 är en m x l matris.
Genomförande:
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)> |
>
>Produktion
båsalgoritm
[[114, 160, 60], [74, 97, 73], [119, 157, 112]]>
I det här programmet har vi använt kapslade för loopar för beräkning av resultat som kommer att iterera genom varje rad och kolumn i matriserna, äntligen kommer det att ackumulera summan av produkten i resultatet.
2. Använder Numpy: Multiplikation med hjälp av Numpy kallas också vektorisering, vars huvudsakliga syfte är att minska eller ta bort den explicita användningen av för loopar i programmet som gör beräkningen snabbare.
Numpy är ett inbyggt paket i python för array-bearbetning och manipulation. För större matrisoperationer använder vi numpy python-paketet som är 1000 gånger snabbare än iterativ en metod.
För detaljer om Numpy, besök Länk
Genomförande:
Python3
java tutorials
# 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)> |
>
java dubbel till sträng
>
Produktion:
[[ 63 320 83] [ 77 484 102] [ 84 248 117]]>
Använder sig av numpy
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:
hur man läser från csv-fil i java
[[ 63 320 83] [ 77 484 102] [ 84 248 117]]>
I exemplet ovan har vi använt punktprodukt och i matematik är punktprodukten en algebraisk operation som tar två lika stora vektorer och returnerar ett enda tal. Resultatet beräknas genom att multiplicera motsvarande poster och lägga ihop dessa produkter.