HOWTO · Python
Mezclar un array en Python
Este tutorial demuestra cómo mezclar un array en Python
En esta página
En este tutorial, veremos los diversos métodos para mezclar un array en Python. El reordenamiento de un array significa reorganizar las posiciones de los elementos en el array. Una de las aplicaciones de mezcla aleatoria de matrices está en el entrenamiento de modelos, donde necesitamos mezclar nuestro conjunto de datos para mejorar la calidad de entrenamiento del modelo. También podría utilizarse en muchas aplicaciones de estadística.
Mezclar un array en Python usando el método random.shuffle()
El método random.shuffle() toma una secuencia como entrada y la baraja. Lo importante a tener en cuenta aquí es que random.shuffle() no devuelve una nueva secuencia como salida, sino que baraja la secuencia original. Por lo tanto, la secuencia de entrada válida solo puede ser tipos de datos mutables como un array o una lista, etc.
El método random.shuffle() solo funciona en secuencias 1D. El siguiente código de ejemplo demuestra cómo usar random.shuffle() para mezclar un array en Python.
import random
import numpy as np
mylist = ["apple", "banana", "cherry"]
x = np.array((2, 3, 21, 312, 31, 31, 3123, 131))
print(x)
print(mylist)
random.shuffle(mylist)
random.shuffle(x)
print(x)
print(mylist)
Producción :
[ 2 3 21 312 31 31 3123 131]
['apple', 'banana', 'cherry']
[3123 21 312 3 2 131 31 31]
['banana', 'apple', 'cherry']
Mezclar un array en Python usando el método shuffle() del módulo sklearn
El método sklearn.utils.shuffle(array, random_state, n_samples) toma secuencias indexables como matrices, listas o DataFrames, etc. con la misma primera dimensión como entrada y devuelve las copias de las secuencias barajadas proporcionadas como entrada.
sklearn.utils.shuffle() no cambia la entrada original pero devuelve la copia aleatoria de la entrada. La entrada puede ser una o varias secuencias. El parámetro random_state se utiliza para controlar la generación aleatoria de números. Si se establece en algún número entero, el método devolverá la misma secuencia aleatoria cada vez. n_samples representa el número de muestras, y su valor predeterminado es igual a la primera dimensión del valor predeterminado de entrada y no debe ser mayor que la longitud del array(s) de entrada.
sklearn.utils.shuffle() solo mezclará las filas.El siguiente código de ejemplo demuestra cómo usar el método sklearn.utils.shuffle() para obtener una (s) matriz (s) barajada (s) en Python.
from sklearn.utils import shuffle
import numpy as np
x = np.array([[1, 2, 3], [6, 7, 8], [9, 10, 12]])
y = ["one", "two", "three"]
z = [4, 5, 6]
print(x)
print(y)
print(z)
x, y, z = shuffle(x, y, z, random_state=0)
print(x)
print(y)
print(z)
Producción :
[[ 1 2 3]
[ 6 7 8]
[ 9 10 12]]
['one', 'two', 'three']
[4, 5, 6]
[[ 9 10 12]
[ 6 7 8]
[ 1 2 3]]
['three', 'two', 'one']
[6, 5, 4]