logo

Divu matricu reizināšana vienā rindā, izmantojot Numpy Python

Matricas reizināšana ir darbība, kas izmanto divas matricas kā ievadi un izveido vienu matricu, reizinot pirmās matricas rindas ar otrās matricas kolonnu. Matricas reizināšanā pārliecinieties, ka pirmās matricas kolonnu skaitam jābūt vienādam ar otrās matricas rindu skaitu.

Piemērs: Divu matricu, kuru izmērs ir 3×3, reizināšana.



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]]>

Divu matricu reizināšanas metodes pitonā

1. Izmantojot nepārprotamu cilpu: Šis ir vienkāršs paņēmiens matricu reizināšanai, taču viena no dārgajām metodēm lielākai ievades datu kopai. Šajā gadījumā mēs izmantojam ligzdotu. priekš cilpas, lai atkārtotu katru rindu un kolonnu.

Ja matrica1 ir a n x m matrica un matrica2 ir a m x l matrica.



Īstenošana:

Python3






python chr funkcija
# 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)>

>

>

Izvade

[[114, 160, 60], [74, 97, 73], [119, 157, 112]]>

Šajā programmā rezultātu aprēķināšanai esam izmantojuši ligzdotas cilpas, kas atkārtos katru matricu rindu un kolonnu, beidzot rezultātos uzkrājot produkta summu.

2. Izmantojot Numpy: Reizināšana, izmantojot Numpy, tiek saukta arī par vektorizāciju, kuras galvenais mērķis ir samazināt vai novērst nepārprotamu for cilpu izmantošanu programmā, ar kuru aprēķins kļūst ātrāks.
Numpy ir python pakotnē, kas paredzēta masīvu apstrādei un manipulācijām. Lielākām matricas operācijām mēs izmantojam numpy python pakotni, kas ir 1000 reižu ātrāka nekā iteratīvā viena metode.
Lai iegūtu sīkāku informāciju par Numpy, lūdzu, apmeklējiet vietni Saite

Īstenošana:

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)>

>

>

Izvade:

[[ 63 320 83] [ 77 484 102] [ 84 248 117]]>

Izmantojot nejutīgs

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)>

>

>

Izvade:

[[ 63 320 83] [ 77 484 102] [ 84 248 117]]>

Iepriekš minētajā piemērā mēs izmantojām punktu reizinājumu, un matemātikā punktu reizinājums ir algebriska darbība, kas ņem divus vienāda lieluma vektorus un atgriež vienu skaitli. Rezultāts tiek aprēķināts, reizinot atbilstošos ierakstus un saskaitot šos produktus.