Ottieni combinazioni di due array in NumPy
-
Ottieni combinazioni di array NumPy con la funzione
itertools.product()
in Python -
Ottieni combinazioni di array NumPy con la funzione
numpy.meshgrid()
in Python -
Ottieni combinazioni di array NumPy con il metodo
for-in
in Python
Questo articolo introdurrà come trovare il prodotto cartesiano di due array NumPy in Python.
Ottieni combinazioni di array NumPy con la funzione itertools.product()
in Python
Il pacchetto itertools
fornisce molte funzioni relative alla combinazione e alla permutazione. Possiamo usare la funzione itertools.product()
cartesiano prodotto di due iterabili. La funzione itertools.product()
accetta gli iterable come parametri di input e restituisce il prodotto cartesiano degli iterable.
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)
Produzione:
(1, 1)
(1, 2)
(1, 3)
(2, 1)
(2, 2)
(2, 3)
(3, 1)
(3, 2)
(3, 3)
Nel codice sopra, abbiamo calcolato il prodotto incrociato cartesiano dell’array
con se stesso utilizzando la funzione product()
all’interno del pacchetto itertools
e memorizzato il risultato in combinations
.
Ottieni combinazioni di array NumPy con la funzione numpy.meshgrid()
in Python
Possiamo anche usare la funzione meshgrid()
all’interno del pacchetto NumPy per calcolare il prodotto cartesiano di due array NumPy. La funzione numpy.meshgrid()
accetta gli array come argomenti di input e restituisce il prodotto incrociato dei due array.
import numpy as np
array = np.array([1, 2, 3])
combinations = np.array(np.meshgrid(array, array)).T.reshape(-1, 2)
print(combinations)
Produzione:
[[1 1]
[1 2]
[1 3]
[2 1]
[2 2]
[2 3]
[3 1]
[3 2]
[3 3]]
Nel codice sopra, abbiamo calcolato il prodotto incrociato cartesiano dell’array
con se stesso utilizzando la funzione meshgrid()
in NumPy. Abbiamo quindi convertito il risultato di questa operazione in un array con la funzione np.array()
e rimodellato con la funzione numpy.reshape()
. Abbiamo quindi archiviato il nuovo risultato rimodellato all’interno dell’array combinazioni
.
Ottieni combinazioni di array NumPy con il metodo for-in
in Python
Un altro metodo più semplice per raggiungere lo stesso obiettivo dei due esempi precedenti consiste nell’utilizzare l’iteratore for-in
. L’iteratore for-in
viene utilizzato per iterare attraverso ogni elemento all’interno di un iterabile in Python. Questo metodo può essere utilizzato senza importare alcun nuovo pacchetto o libreria.
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)
Produzione:
[[1 1]
[1 2]
[1 3]
[2 1]
[2 2]
[2 3]
[3 1]
[3 2]
[3 3]]
Abbiamo calcolato il prodotto incrociato cartesiano di entrambi gli array utilizzando un iteratore for-in
annidato nel codice sopra. Abbiamo salvato il risultato all’interno dell’array NumPy combinations
con la funzione np.array()
.
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