Mélanger un tableau en Python

Muhammad Waiz Khan 10 octobre 2023
  1. Mélanger un tableau en Python en utilisant la méthode random.shuffle()
  2. Mélange d’un tableau en Python en utilisant la méthode shuffle() du module sklearn
Mélanger un tableau en Python

Dans ce tutoriel, nous allons examiner les différentes méthodes pour mélanger un tableau en Python. Le brassage d’un tableau consiste à réorganiser les positions des éléments du tableau. L’une des applications de la réorganisation de tableaux est la formation de modèles, où nous devons modifier notre ensemble de données pour améliorer la qualité de la formation du modèle. Il pourrait également être utilisé dans de nombreuses applications statistiques.

Mélanger un tableau en Python en utilisant la méthode random.shuffle()

La méthode random.shuffle() prend une séquence comme entrée et la mélange. La chose importante à noter ici est que la méthode random.shuffle() ne retourne pas une nouvelle séquence en sortie mais mélange la séquence originale. Par conséquent, la séquence d’entrée valide ne peut être que des types de données mutables comme un tableau ou une liste, etc.

La méthode random.shuffle() ne fonctionne que sur les séquences 1D. L’exemple de code ci-dessous montre comment utiliser la méthode random.shuffle() pour mélanger un tableau 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)

Production :

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

Mélange d’un tableau en Python en utilisant la méthode shuffle() du module sklearn

La méthode sklearn.utils.shuffle(array, random_state, n_samples) prend des séquences indexables comme des tableaux, des listes, ou des cadres de données, etc. avec la même première dimension en entrée et renvoie les copies des séquences mélangées fournies en entrée.

La méthode sklearn.utils.shuffle() ne modifie pas l’entrée originale mais renvoie la copie mélangée de l’entrée. L’entrée peut être une ou plusieurs séquences. Le paramètre random_state est utilisé pour contrôler la génération aléatoire des nombres. S’il est défini sur un nombre entier, la méthode retournera la même séquence mélangée à chaque fois. Le paramètre n_samples représente le nombre d’échantillons, et sa valeur par défaut est égale à la première dimension de l’entrée par défaut et ne doit pas être supérieure à la longueur du/des tableau(x) d’entrée.

Note
Si l’entrée est 2D, la méthode sklearn.utils.shuffle() ne mélangera que les lignes.

L’exemple de code ci-dessous montre comment utiliser la méthode sklearn.utils.shuffle() pour obtenir un ou plusieurs tableaux mélangé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)

Production :

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

Article connexe - Python Array