Holen Sie sich Kombinationen aus zwei Arrays in NumPy

Muhammad Maisam Abbas 30 Januar 2023
  1. Holen Sie sich NumPy-Array-Kombinationen mit der Funktion itertools.product() in Python
  2. Holen Sie sich NumPy-Array-Kombinationen mit der Funktion numpy.meshgrid() in Python
  3. Holen Sie sich NumPy-Array-Kombinationen mit der for-in-Methode in Python
Holen Sie sich Kombinationen aus zwei Arrays in NumPy

In diesem Artikel erfahren Sie, wie Sie das kartesische Produkt zweier NumPy-Arrays in Python finden.

Holen Sie sich NumPy-Array-Kombinationen mit der Funktion itertools.product() in Python

Das Paket itertools bietet viele Funktionen rund um die Kombination und Permutation. Wir können das itertools.product()-Funktion kartesische Produkt von zwei Iterablen verwenden. Die Funktion itertools.product() nimmt die Iterables als Eingabeparameter und gibt das kartesische Produkt der Iterables zurück.

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)

Ausgabe:

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

Im obigen Code haben wir das kartesische Kreuzprodukt des Arrays mit sich selbst mit der Funktion product() innerhalb des itertools-Pakets berechnet und das Ergebnis in combinations gespeichert.

Holen Sie sich NumPy-Array-Kombinationen mit der Funktion numpy.meshgrid() in Python

Wir können auch die meshgrid()-Funktion innerhalb des NumPy-Pakets verwenden, um das kartesische Produkt zweier NumPy-Arrays zu berechnen. Die Funktion numpy.meshgrid() nimmt die Arrays als Eingabeargumente und gibt das Kreuzprodukt der beiden Arrays zurück.

import numpy as np

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

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

Ausgabe:

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

Im obigen Code haben wir das kartesische Kreuzprodukt des Arrays mit sich selbst berechnet, indem wir die Funktion meshgrid() in NumPy verwendet haben. Das Ergebnis dieser Operation haben wir dann mit der Funktion np.array() in ein Array umgewandelt und mit der Funktion numpy.reshape() umgeformt. Wir haben dann das neue umgeformte Ergebnis im Array combinations gespeichert.

Holen Sie sich NumPy-Array-Kombinationen mit der for-in-Methode in Python

Eine andere einfachere Methode, das gleiche Ziel wie in den beiden vorherigen Beispielen zu erreichen, ist die Verwendung des Iterators for-in. Der for-in-Iterator wird verwendet, um jedes Element innerhalb eines Iterables in Python zu iterieren. Diese Methode kann verwendet werden, ohne ein neues Paket oder eine neue Bibliothek zu importieren.

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)

Ausgabe:

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

Wir haben das kartesische Kreuzprodukt beider Arrays mit einem verschachtelten for-in-Iterator im obigen Code berechnet. Das Ergebnis haben wir im NumPy-Array combinations mit der Funktion np.array() gespeichert.

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