Embaralhar um Array em Python

Muhammad Waiz Khan 10 outubro 2023
  1. Embaralhe um Array em Python usando o método random.shuffle()
  2. Embaralhe um Array em Python usando o método shuffle() do módulo sklearn
Embaralhar um Array em Python

Neste tutorial, veremos os vários métodos para embaralhar um array em Python. O embaralhamento de un array significa reorganizar as posições dos elementos no array. Um dos aplicativos de embaralhamento de array está no treinamento de modelo, onde precisamos embaralhar nosso conjunto de dados para melhorar a qualidade de treinamento do modelo. Também pode ser usado em muitas aplicações estatísticas.

Embaralhe um Array em Python usando o método random.shuffle()

O método random.shuffle() pega uma sequência como entrada e a embaralha. O importante a notar aqui é que random.shuffle() não retorna uma nova sequência como saída, mas, em vez disso, embaralha a sequência original. Portanto, a sequência de entrada válida pode ser apenas tipos de dados mutáveis, como un array ou uma lista, etc.

O método random.shuffle() funciona apenas em sequências 1D. O código de exemplo a seguir demonstra como usar random.shuffle() para embaralhar um array em 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)

Resultado:

[   2    3   21  312   31   31 3123  131]
['apple', 'banana', 'cherry']
[3123   21  312    3    2  131   31   31]
['banana', 'apple', 'cherry']

Embaralhe um Array em Python usando o método shuffle() do módulo sklearn

O método sklearn.utils.shuffle(array, random_state, n_samples) leva sequências indexáveis ​​como arrays, listas ou dataframes, etc. com a mesma primeira dimensão como entrada e retorna as cópias das sequências embaralhadas fornecidas como entrada.

O sklearn.utils.shuffle() não altera a entrada original, mas retorna a cópia embaralhada da entrada. A entrada pode ser sequências simples ou múltiplas. O parâmetro random_state é usado para controlar a geração aleatória de números. Se for definido como algum inteiro, o método retornará a mesma sequência embaralhada todas as vezes. O n_samples representa o número de amostras, e seu valor padrão é igual à primeira dimensão do padrão de entrada e não deve ser maior que o comprimento da (s) matriz (s) de entrada.

Nota
Se a entrada for 2D, o método sklearn.utils.shuffle() apenas embaralhará as linhas.

O código de exemplo a seguir demonstra como usar o método sklearn.utils.shuffle() para obter array(s) embaralhado(s) em 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)

Resultado:

[[ 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]

Artigo relacionado - Python Array