logo

Înmulțirea a două matrici într-o singură linie folosind Numpy în Python

Înmulțirea matricei este o operație care ia două matrice ca intrare și produce o singură matrice prin înmulțirea rândurilor primei matrice la coloana celei de-a doua matrice. În multiplicarea matricei asigurați-vă că numărul de coloane din prima matrice trebuie să fie egal cu numărul de rânduri din a doua matrice.

Exemplu: Înmulțirea a două matrici una cu cealaltă de dimensiune 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]]>

Metode de înmulțire a două matrici în python

1. Folosind buclele for explicite: Aceasta este o tehnică simplă de multiplicare a matricelor, dar una dintre metodele costisitoare pentru un set de date de intrare mai mare. În aceasta, folosim imbricate pentru bucle pentru a repeta fiecare rând și fiecare coloană.

Dacă matricea1 este a n x m matricea și matricea2 este a m x l matrice.



Implementare:

jocuri cu mesaje pe Android

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

>

>

Ieșire

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

În acest program, am folosit bucle imbricate for pentru calcularea rezultatului care vor itera prin fiecare rând și coloană a matricelor, în cele din urmă va acumula suma produsului în rezultat.

2. Folosind Numpy: Înmulțirea folosind Numpy este cunoscută și sub denumirea de vectorizare, care urmărește principal să reducă sau să elimine utilizarea explicită a buclelor for în program prin care calculul devine mai rapid.
Numpy este o construcție într-un pachet în python pentru procesarea și manipularea matricei. Pentru operații cu matrice mai mari, folosim pachetul numpy python care este de 1000 de ori mai rapid decât o metodă iterativă.
Pentru detalii despre Numpy, vă rugăm să vizitați Legătură

Implementare:

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

>

>

Ieșire:

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

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

>

redenumiți un folder linux

>

Ieșire:

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

În exemplul de mai sus am folosit produsul punctual, iar în matematică produsul punctual este o operație algebrică care ia doi vectori de dimensiune egală și returnează un singur număr. Rezultatul este calculat prin înmulțirea intrărilor corespunzătoare și însumând acele produse.