NumPy Shuffle Two Arrays
-
NumPy Shuffle Two Arrays con la función
sklearn.utils.shuffle()
en Python -
NumPy Shuffle Two Arrays con la función
numpy.random.shuffle()
-
NumPy Shuffle dos matrices correspondientes con la función
numpy.random.permutation()
en Python
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
.
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