logo

Multiplication de deux matrices sur une seule ligne à l'aide de Numpy en Python

La multiplication matricielle est une opération qui prend deux matrices en entrée et produit une seule matrice en multipliant les lignes de la première matrice par la colonne de la deuxième matrice. Dans la multiplication matricielle, assurez-vous que le nombre de colonnes de la première matrice doit être égal au nombre de lignes de la deuxième matrice.

Exemple: Multiplication de deux matrices entre elles de taille 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]]>

Méthodes pour multiplier deux matrices en python

1. Utilisation de boucles for explicites : Il s'agit d'une technique simple pour multiplier des matrices, mais l'une des méthodes coûteuses pour un ensemble de données d'entrée plus grand. Dans ce cas, nous utilisons des pour boucles pour parcourir chaque ligne et chaque colonne.

Si matrice1 est un nxm matrice et matrice2 est un mxl matrice.



Mise en œuvre:

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

>

>

Sortir

combien de villes y a-t-il en nous
[[114, 160, 60], [74, 97, 73], [119, 157, 112]]>

Dans ce programme, nous avons utilisé des boucles for imbriquées pour le calcul du résultat qui parcourront chaque ligne et colonne des matrices, enfin elles accumuleront la somme du produit dans le résultat.

2. Utiliser Numpy : La multiplication à l'aide de Numpy est également connue sous le nom de vectorisation, dont le principal objectif est de réduire ou de supprimer l'utilisation explicite des boucles for dans le programme, ce qui accélère le calcul.
Numpy est une construction dans un package en python pour le traitement et la manipulation de tableaux. Pour les opérations matricielles plus importantes, nous utilisons le package numpy python qui est 1000 fois plus rapide qu'une méthode itérative.
Pour plus de détails sur Numpy, veuillez visiter le Lien

Mise en œuvre:

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

>

>

Sortir:

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

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

>

décodage base64 en js

>

Sortir:

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

Dans l'exemple ci-dessus, nous avons utilisé le produit scalaire et en mathématiques, le produit scalaire est une opération algébrique qui prend deux vecteurs de taille égale et renvoie un seul nombre. Le résultat est calculé en multipliant les entrées correspondantes et en additionnant ces produits.