Python >> Tutoriel Python >  >> Python Tag >> NumPy

Comment multiplier les matrices 2D dans Numpy ?

Étant donné deux tableaux 2D a et b . Vous pouvez effectuer une multiplication matricielle standard avec l'opération np.matmul(a, b) si le tableau a a la forme (x, y) et le tableau be a la forme (y, z) pour certains entiers x , y , et z .

Formulation du problème :Étant donné un tableau NumPy à deux dimensions (=matrice) a avec la forme (x, y) et un tableau à deux dimensions b avec la forme (y, z) . En d'autres termes, le nombre de colonnes de a est égal au nombre de lignes de b . Comment multiplier a avec b en utilisant la multiplication matricielle standard ?

Solution :Utilisez le np.matmul(a, b) fonction qui prend deux tableaux NumPy en entrée et renvoie le résultat de la multiplication des deux tableaux. Les tableaux doivent avoir une forme compatible.

Plongeons-nous dans quelques exemples !

Multiplication matricielle d'un 2x2 avec une matrice 2x2

import numpy as np


a = np.array([[1, 1],
              [1, 0]])


b = np.array([[2, 0],
              [0, 2]])


c = np.matmul(a, b)

print(a.shape)
# (2, 2)

print(b.shape)
# (2, 2)

print(c)
'''
[[2 2]
 [2 0]]
'''

Multiplication matricielle d'une matrice 2x3 et d'une matrice 3x2

import numpy as np


a = np.array([[1, 1, 1],
              [1, 0, 1]])


b = np.array([[2, 0],
              [0, 2],
              [0, 0]])


c = np.matmul(a, b)

print(a.shape)
# (2, 3)

print(b.shape)
# (3, 2)

print(c)
'''
[[2 2]
 [2 0]]
'''

Puzzle NumPy :Multiplication matricielle

import numpy as np

# graphics data
a = [[1, 1],
     [1, 0]]

# stretch vectors
b = [[2, 0],
     [0, 2]]
c = np.matmul(a, b)

print(c[0, 1])

Quel est le résultat de ce puzzle ?

Numpy est une bibliothèque Python populaire pour la science des données axée sur les tableaux, les vecteurs et les matrices.

Ce puzzle montre un domaine d'application important de la multiplication matricielle :l'infographie.

Nous créons deux matrices a et b. La première matrice a est la matrice de données (par exemple constituée de deux vecteurs colonnes (1,1) et (1,0) ). La deuxième matrice b est la matrice de transformation qui transforme les données d'entrée. Dans notre contexte, la matrice de transformation étire simplement les vecteurs colonnes.

Plus précisément, les deux vecteurs colonnes (1,1) et (1,0) sont étirés d'un facteur 2 à (2,2) et (2,0) . La matrice résultante est donc [[2,2],[2,0]] . Nous accédons à la première ligne et à la deuxième colonne.


Êtes-vous un codeur maître?
Testez vos compétences maintenant !

Vidéo associée


Post précédent