Obtenha combinações de duas matrizes no NumPy
-
Obtenha combinações de arrayes NumPy com a função
itertools.product()
em Python -
Obtenha combinações de array NumPy com a função
numpy.meshgrid()
em Python -
Obtenha combinações de arrayes NumPy com o método
for-in
em Python
Este artigo irá apresentar como encontrar o produto cartesiano de dois arrays NumPy em Python.
Obtenha combinações de arrayes NumPy com a função itertools.product()
em Python
O pacote itertools
oferece muitas funções relacionadas à combinação e permutação. Podemos usar a função cartesiana itertools.product()
de dois iteráveis. A função itertools.product()
pega os iteráveis como parâmetros de entrada e retorna o produto cartesiano dos iteráveis.
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)
Resultado:
(1, 1)
(1, 2)
(1, 3)
(2, 1)
(2, 2)
(2, 3)
(3, 1)
(3, 2)
(3, 3)
No código acima, calculamos o produto cruzado cartesiano do array
com ele mesmo usando a função product()
dentro do pacote itertools
e armazenamos o resultado em combinations
.
Obtenha combinações de array NumPy com a função numpy.meshgrid()
em Python
Também podemos usar a função meshgrid()
dentro do pacote NumPy para calcular o produto cartesiano de duas matrizes NumPy. A função numpy.meshgrid()
recebe os arrays como argumentos de entrada e retorna o produto cruzado dos dois arrays.
import numpy as np
array = np.array([1, 2, 3])
combinations = np.array(np.meshgrid(array, array)).T.reshape(-1, 2)
print(combinations)
Resultado:
[[1 1]
[1 2]
[1 3]
[2 1]
[2 2]
[2 3]
[3 1]
[3 2]
[3 3]]
No código acima, calculamos o produto cruzado cartesiano do array
com ele mesmo usando a função meshgrid()
em NumPy. Em seguida, convertemos o resultado dessa operação em um array com a função np.array()
e o remodelamos com a função numpy.reshape()
. Em seguida, armazenamos o novo resultado remodelado dentro do array de combinations
.
Obtenha combinações de arrayes NumPy com o método for-in
em Python
Outro método mais direto de atingir o mesmo objetivo dos dois exemplos anteriores é usar o iterador for-in
. O iterador for-in
é usado para iterar cada elemento dentro de um iterável em Python. Este método pode ser usado sem importar nenhum novo pacote ou biblioteca.
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)
Resultado:
[[1 1]
[1 2]
[1 3]
[2 1]
[2 2]
[2 3]
[3 1]
[3 2]
[3 3]]
Calculamos o produto cruzado cartesiano de ambas as matrizes usando um iterador for-in
aninhado no código acima. Salvamos o resultado dentro do array NumPy combinations
com a função 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