Obtenga combinaciones de dos matrices en NumPy

Muhammad Maisam Abbas 30 enero 2023
  1. Obtenga combinaciones de matrices NumPy con la función itertools.product() en Python
  2. Obtenga combinaciones de matrices NumPy con la función numpy.meshgrid() en Python
  3. Obtenga combinaciones de matrices NumPy con el método for-in en Python
Obtenga combinaciones de dos matrices en NumPy

Este artículo presentará cómo encontrar el producto cartesiano de dos matrices NumPy en Python.

Obtenga combinaciones de matrices NumPy con la función itertools.product() en Python

El paquete itertools proporciona muchas funciones relacionadas con la combinación y la permutación. Podemos usar la función itertools.product() producto cartesiano de dos iterables. La función itertools.product() toma los iterables como parámetros de entrada y devuelve el producto cartesiano de los iterables.

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)

Producción :

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

En el código anterior, calculamos el producto cruzado cartesiano de la array consigo mismo utilizando la función product() dentro del paquete itertools y almacenamos el resultado en combinations.

Obtenga combinaciones de matrices NumPy con la función numpy.meshgrid() en Python

También podemos usar la función meshgrid() dentro del paquete NumPy para calcular el producto cartesiano de dos matrices NumPy. La función numpy.meshgrid() toma las matrices como argumentos de entrada y devuelve el producto cruzado de las dos matrices.

import numpy as np

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

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

Producción :

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

En el código anterior, calculamos el producto cruzado cartesiano de la array consigo mismo utilizando la función meshgrid() en NumPy. Luego convertimos el resultado de esta operación en un array con la función np.array() y la reformamos con la función numpy.reshape(). Luego almacenamos el nuevo resultado remodelado dentro del array de combinations.

Obtenga combinaciones de matrices NumPy con el método for-in en Python

Otro método más sencillo para lograr el mismo objetivo que los dos ejemplos anteriores es utilizar el iterador for-in. El iterador for-in se usa para iterar a través de cada elemento dentro de un iterable en Python. Este método se puede utilizar sin importar ningún paquete o biblioteca nuevos.

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)

Producción :

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

Calculamos el producto cruzado cartesiano de ambas matrices usando un iterador for-in anidado en el código anterior. Guardamos el resultado dentro del array NumPy combinations con la función 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