NumPy Shuffle Two Arrays

Muhammad Maisam Abbas 30 enero 2023
  1. NumPy Shuffle Two Arrays con la función sklearn.utils.shuffle() en Python
  2. NumPy Shuffle Two Arrays con la función numpy.random.shuffle()
  3. NumPy Shuffle dos matrices correspondientes con la función numpy.random.permutation() en Python
NumPy Shuffle Two Arrays

Este tutorial presentará cómo mezclar dos matrices NumPy en Python.

NumPy Shuffle Two Arrays con la función sklearn.utils.shuffle() en Python

Supongamos que tenemos dos matrices de la misma longitud o las mismas dimensiones iniciales, y queremos mezclarlas de manera que los elementos correspondientes en ambas matrices sigan correspondiendo. En ese caso, podemos usar la función shuffle() dentro de la biblioteca sklean.utils en Python. Esta función shuffle() toma las matrices como parámetros de entrada, las baraja de forma coherente y devuelve una copia barajada de cada matriz. Vea el siguiente ejemplo de código.

import numpy as np
from sklearn import utils

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

array1, array2 = utils.shuffle(array1, array2)
print(array1)
print(array2)

Producción :

[[0 0]
 [2 2]
 [1 1]]
[0 2 1]

En el código anterior, mezclamos las dos matrices, array1 y array2, con la función shuffle() dentro de la biblioteca sklearn.utils en Python. Primero creamos ambas matrices con la función np.array(). Luego mezclamos las matrices con la función shuffle() dentro de la biblioteca sklearn.utils y guardamos las matrices barajadas dentro de array1 y array2. Al final, imprimimos los elementos dentro de ambas matrices. La salida muestra que los elementos de ambas matrices se corresponden incluso después de barajar.

NumPy Shuffle Two Arrays con la función numpy.random.shuffle()

Si no queremos importar el paquete sklearn y queremos lograr el mismo objetivo que el anterior usando el paquete NumPy, podemos usar la función shuffle() dentro de la biblioteca numpy.random. Esta función shuffle() toma una secuencia y la aleatoriza. Luego, podemos usar esta secuencia aleatoria como índice para que las dos matrices las mezclen. El siguiente ejemplo de código nos muestra cómo podemos mezclar dos matrices con la función numpy.random.shuffle().

import numpy as np

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

randomize = np.arange(len(array2))

np.random.shuffle(randomize)

array1 = array1[randomize]
array2 = array2[randomize]
print(array1)
print(array2)

Producción :

[[2 2]
 [0 0]
 [1 1]]
[2 0 1]

Primero creamos las matrices con la función np.array(). Luego creamos una secuencia de enteros que es igual a la longitud de la segunda matriz con la función np.arange(len (matriz2)). Después de eso, aleatorizamos la secuencia con la función shuffle() dentro de la biblioteca np.random y la usamos como índice para ambas matrices para mezclarlas.

NumPy Shuffle dos matrices correspondientes con la función numpy.random.permutation() en Python

También podemos usar la función permutation() dentro de la biblioteca numpy.random para crear una secuencia aleatoria de enteros dentro de un rango específico en Python. Esta secuencia se puede utilizar como índice para que ambas matrices las mezclen.

import numpy as np


def shuffle(x, y):
    p = np.random.permutation(len(y))
    return x[p], y[p]


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

array1, array2 = shuffle(array1, array2)
print(array1)
print(array2)

Producción :

[[0 0]
 [2 2]
 [1 1]]
[0 2 1]

En el código anterior, definimos una función shuffle() que toma dos matrices y las aleatoriza con la función permutation() dentro de la biblioteca numpy.random en Python. Especificamos que la longitud de la secuencia aleatoria sea igual al número de elementos en la segunda matriz con la función len(y). Luego usamos la secuencia aleatoria p como índice para ambas matrices y las devolvimos. Las matrices mezcladas devueltas por la función shuffle() se almacenan dentro de las matrices array1 y array2.

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