Calculer le produit scalaire de deux listes en Python

Isaac Tony 30 janvier 2023
  1. Utilisation des fonctions sum() et zip() pour calculer le produit scalaire en Python
  2. Calculer le produit scalaire à l’aide des fonctions map() et mul() en Python
  3. Calculer le produit scalaire à l’aide de more_itertools.dotproduct en Python
  4. Calculer le produit scalaire à l’aide de NumPy en Python
Calculer le produit scalaire de deux listes en Python

Le produit scalaire est une opération mathématique également connue sous le nom de produit scalaire. Un produit scalaire est une expression algébrique qui prend une séquence de deux longueurs égales et renvoie un seul nombre en conséquence.

Utilisation des fonctions sum() et zip() pour calculer le produit scalaire en Python

Nous pouvons calculer le produit scalaire de listes de longueur égale en utilisant la fonction zip() et la fonction sum().

La fonction zip renvoie un objet zip en combinant des éléments dans une séquence de tuples des deux itérables. D’autre part, la fonction sum renvoie la somme des éléments dans les itérables tels que les listes.

Étant donné que le produit scalaire implique mathématiquement une série de sommes et de produits d’éléments de la séquence de nombres, nous pouvons calculer le produit scalaire de deux listes en utilisant les combinaisons de ces deux.

num1 = [2, 4, 6, 8, 10]
num2 = [10, 20, 30, 40, 50]

print(sum([i * j for (i, j) in zip(num1, num2)]))

Production :

1100

Calculer le produit scalaire à l’aide des fonctions map() et mul() en Python

Le module operator en Python fournit un ensemble de fonctions permettant d’importer et d’utiliser des opérateurs intrinsèques en Python pour effectuer diverses opérations.

Ces opérations comprennent les opérations logiques, les opérations de séquence, les opérations mathématiques et la comparaison d’objets. La fonction mul() effectue la multiplication élément par élément d’objets avec une série de nombres tels que des trames de données.

D’autre part, la fonction map() est une fonction intégrée qui nous permet d’appliquer une certaine fonction à tous les éléments d’un itérable. Enfin, nous utiliserions également la fonction sum() pour calculer la somme des produits à partir des deux listes de valeurs numériques, comme indiqué dans le code ci-dessous.

from operator import mul

num1 = [2, 4, 6, 8, 10]
num2 = [10, 20, 30, 40, 50]

print(sum(map(mul, num1, num2)))

Production :

1100

Calculer le produit scalaire à l’aide de more_itertools.dotproduct en Python

Python more_itertools est une bibliothèque Python qui fournit des fonctions élégantes pour travailler avec des itérables en Python. Les fonctions fournies par la bibliothèque more_itertools nous permettent de regrouper et de sélectionner des itérables parmi d’autres opérations telles que le fenêtrage, la combinatoire et l’habillage.

La bibliothèque more_itertools ne fournit pas seulement des solutions pour des itérations complexes ; il est également plus élégant et économe en mémoire. En utilisant la fonction more_itertools.product(), nous pouvons calculer le produit scalaire d’une séquence de nombres dans une liste comme indiqué ci-dessous.

import more_itertools as mit

num1 = [2, 4, 6, 8, 10]
num2 = [10, 20, 30, 40, 50]
print(mit.dotproduct(num1, num2))

Production :

1100

Calculer le produit scalaire à l’aide de NumPy en Python

NumPy est un package Python scientifique qui nous permet de travailler avec des objets multidimensionnels tels que des tableaux et des matrices.

NumPy est rapide mais plus efficace car nous pouvons faire beaucoup en utilisant très peu de code. Nous pouvons travailler de manière transparente avec des tableaux sans indexation explicite ni boucle dans son code vectorisé.

Vous trouverez ci-dessous une solution qui utilise une boucle for et la combinaison du produit et de l’opérateur d’addition pour calculer le produit scalaire de deux listes.

num1 = [2, 4, 6, 8, 10]
num2 = [10, 20, 30, 40, 50]

dot_product = 0
for x, y in zip(num1, num2):
    dot_product = dot_product + x * y
print("The dot product of the two lists is: ", dot_product)

Production :

The dot product of the two lists is:  1100

Bien que cette solution calcule le produit scalaire, NumPy offre une alternative plus élégante sans écrire de boucle.

En utilisant la méthode numpy.dot(), nous pouvons facilement calculer le produit scalaire d’une séquence de nombres dans deux listes. Cette solution est précise et donc peu sujette aux erreurs et peut être implémentée dans le code ci-dessous.

import numpy as np

num1 = [2, 4, 6, 8, 10]
num2 = [10, 20, 30, 40, 50]
dot_product = np.dot(num1, num2)
print("The dot product of the two lists is: ", dot_product)

Production :

The dot product of the two lists is:  1100
Auteur: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

Article connexe - Python List