Obtenez des combinaisons de deux tableaux dans NumPy

Muhammad Maisam Abbas 30 janvier 2023
  1. Obtenez des combinaisons de tableaux NumPy avec la fonction itertools.product() en Python
  2. Obtenir des combinaisons de tableaux NumPy avec la fonction numpy.meshgrid() en Python
  3. Obtenez des combinaisons de tableaux NumPy avec la méthode for-in en Python
Obtenez des combinaisons de deux tableaux dans NumPy

Cet article présentera comment trouver le produit cartésien de deux tableaux NumPy en Python.

Obtenez des combinaisons de tableaux NumPy avec la fonction itertools.product() en Python

Le package itertools fournit de nombreuses fonctions liées à la combinaison et à la permutation. On peut utiliser le itertools.product() function produit cartésien de deux itérables. La fonction itertools.product() prend les itérables comme paramètres d’entrée et retourne le produit cartésien des itérables.

import itertools as it
import numpy as np

array = np.array([1, 2, 3])

combinations = it.product(array, array)

for combination in combinations:
    print(combination)

Production:

(1, 1)
(1, 2)
(1, 3)
(2, 1)
(2, 2)
(2, 3)
(3, 1)
(3, 2)
(3, 3)

Dans le code ci-dessus, nous avons calculé le produit croisé cartésien du array avec lui-même en utilisant la fonction product() à l’intérieur du package itertools et stocké le résultat dans combinations.

Obtenir des combinaisons de tableaux NumPy avec la fonction numpy.meshgrid() en Python

Nous pouvons également utiliser la fonction meshgrid() dans le package NumPy pour calculer le produit cartésien de deux tableaux NumPy. La fonction numpy.meshgrid() prend les tableaux comme arguments d’entrée et renvoie le produit croisé des deux tableaux.

import numpy as np

array = np.array([1, 2, 3])

combinations = np.array(np.meshgrid(array, array)).T.reshape(-1, 2)
print(combinations)

Production:

[[1 1]
 [1 2]
 [1 3]
 [2 1]
 [2 2]
 [2 3]
 [3 1]
 [3 2]
 [3 3]]

Dans le code ci-dessus, nous avons calculé le produit croisé cartésien du array avec lui-même en utilisant la fonction meshgrid() dans NumPy. Nous avons ensuite converti le résultat de cette opération en un tableau avec la fonction np.array() et l’avons remodelé avec la fonction numpy.reshape(). Nous avons ensuite stocké le nouveau résultat remodelé à l’intérieur du tableau combinaisons.

Obtenez des combinaisons de tableaux NumPy avec la méthode for-in en Python

Une autre méthode plus simple pour atteindre le même objectif que les deux exemples précédents consiste à utiliser l’itérateur for-in. L’itérateur for-in est utilisé pour parcourir chaque élément à l’intérieur d’un itérable en Python. Cette méthode peut être utilisée sans importer de nouveau package ou bibliothèque.

import numpy as np

array = np.array([1, 2, 3])

array2 = np.array([1, 2, 3])

combinations = np.array([(i, j) for i in array for j in array2])
print(combinations)

Production:

[[1 1]
 [1 2]
 [1 3]
 [2 1]
 [2 2]
 [2 3]
 [3 1]
 [3 2]
 [3 3]]

Nous avons calculé le produit croisé cartésien des deux tableaux à l’aide d’un itérateur for-in imbriqué dans le code ci-dessus. Nous avons enregistré le résultat dans le tableau NumPy combinations avec la fonction np.array().

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn