logo

Dviejų matricų dauginimas vienoje eilutėje naudojant Numpy Python

Matricos daugyba yra operacija, kurios įvestis paima dvi matricas ir sukuria vieną matricą, padauginus pirmosios matricos eilutes iš antrosios matricos stulpelio. Matricos daugybos metu įsitikinkite, kad pirmosios matricos stulpelių skaičius turi būti lygus antrosios matricos eilučių skaičiui.

Pavyzdys: Dviejų matricų, kurių dydis yra 3×3, dauginimas viena iš kitos.



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

Dviejų matricų padauginimo python metodai

1. Naudojamas atviras ciklas: Tai paprastas matricų dauginimo būdas, tačiau vienas iš brangiausių metodų didesniam įvesties duomenų rinkiniui gauti. dėl kilpos, kad būtų kartojama kiekviena eilutė ir kiekvienas stulpelis.

Virtuali atmintis

Jei matrica1 yra a n x m matrica ir matrica2 yra a m x l matrica.



Įgyvendinimas:

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

>

>

Išvestis

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

Šioje programoje rezultatui apskaičiuoti naudojome įdėtą kilpą, kuri kartosis per kiekvieną matricos eilutę ir stulpelį, pagaliau rezultate sukaups produkto sumą.

2. Numpy naudojimas: Daugyba naudojant Numpy taip pat žinomas kaip vektorizavimas, kurio pagrindinis tikslas yra sumažinti arba pašalinti aiškų for kilpų naudojimą programoje, dėl kurios skaičiavimas tampa greitesnis.
„Numpy“ yra „python“ paketas, skirtas masyvo apdorojimui ir manipuliavimui. Didesnėms matricos operacijoms naudojame numpy python paketą, kuris yra 1000 kartų greitesnis nei kartotinis vienas metodas.
Norėdami gauti daugiau informacijos apie Numpy, apsilankykite Nuoroda

Įgyvendinimas:

Python3

listnode java




# 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 maišant į int
>

Išvestis:

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

Naudojant nelygus

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

>

>

Išvestis:

duomenų ryšio sluoksnio protokolai
[[ 63 320 83] [ 77 484 102] [ 84 248 117]]>

Aukščiau pateiktame pavyzdyje naudojome taško sandaugą, o matematikoje taško sandauga yra algebrinė operacija, kuri paima du vienodo dydžio vektorius ir grąžina vieną skaičių. Rezultatas apskaičiuojamas padauginus atitinkamus įrašus ir sudedant tuos produktus.