Multiplication par élément dans NumPy

Muhammad Waiz Khan 30 janvier 2023
  1. Multiplication élémentaire des matrices en Python en utilisant la méthode np.multiply()
  2. Multiplication élémentaire des matrices en Python à l’aide de l’opérateur *
Multiplication par élément dans NumPy

Ce didacticiel expliquera diverses méthodes pour effectuer une multiplication de matrice élément par élément en Python. Dans la multiplication de matrice élément par élément (également connue sous le nom de produit Hadamard), chaque élément de la première matrice est multiplié par l’élément correspondant de la deuxième matrice.

Lors de l’exécution de la multiplication de matrice élément par élément, les deux matrices doivent avoir les mêmes dimensions. La matrice résultante c de la multiplication matricielle élément par élément a*b = c a toujours la même dimension que celle de a et b.

Nous pouvons effectuer la multiplication élément par élément en Python en utilisant les méthodes suivantes:

Multiplication élémentaire des matrices en Python en utilisant la méthode np.multiply()

La méthode np.multiply(x1, x2) de la bibliothèque NumPy de Python prend deux matrices x1 et x2 en entrée, effectue une multiplication élément par élément en entrée, et renvoie la matrice résultante en entrée.

Par conséquent, nous devons passer les deux matrices en entrée à la méthode np.multiply() pour effectuer une entrée élément par élément. L’exemple de code ci-dessous montre comment utiliser np.multiply() pour effectuer une multiplication élément par élément de deux matrices en Python.

import numpy as np

a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])

print(np.multiply(a1, a2))

Production:

[[ 180 1196   46  119   44]
 [  39   40   72    9   24]]

Nous pouvons également effectuer la multiplication élément par élément de lignes, colonnes ou sous-matrices spécifiques des matrices en utilisant la méthode np.multiply(). Nous devons passer les lignes, colonnes ou sous-matrices spécifiques des matrices à la méthode np.multiply(). Comme dans la multiplication matricielle élément par élément, la taille des lignes, des colonnes ou des sous-matrices passées comme premier et deuxième opérande pour la multiplication doit également être la même.

L’exemple de code ci-dessous montre comment implémenter la multiplication élément par élément des lignes, des colonnes ou des sous-matrices de deux matrices en Python.

import numpy as np

a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])

print(np.multiply(a1[0, :], a2[1, :]))
print(np.multiply(a1[1, :], a2[0, :]))
print(np.multiply(a1[:, 3], a2[:, 1]))

Production:

[156 368 207  21   8]
[ 45 130  16  51 132]
[182  24]

Multiplication élémentaire des matrices en Python à l’aide de l’opérateur *

Nous pouvons également utiliser l’opérateur * avec les matrices pour effectuer une multiplication de matrice élément par élément. L’opérateur *, lorsqu’il est utilisé avec les matrices en Python, retourne une matrice résultante de la multiplication de matrice élément par élément.

L’exemple de code ci-dessous montre comment utiliser l’opérateur * pour effectuer la multiplication matricielle élément par élément en Python:

a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])

print(a1 * a2)

Production:

[[ 180 1196   46  119   44]
 [  39   40   72    9   24]]

Nous pouvons également utiliser l’opérateur * pour effectuer la multiplication élément par élément des lignes, colonnes et sous-matrices des matrices de la manière suivante en Python.

import numpy as np

a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])

print(a1[0, :] * a2[1, :])
print(a1[1, :] * a2[0, :])
print(a1[:, 3] * a2[:, 1])

Production:

[156 368 207  21   8]
[ 45 130  16  51 132]
[182  24]

Article connexe - NumPy Matrix