NumPy Shuffle deux tableaux

Muhammad Maisam Abbas 30 janvier 2023
  1. NumPy Shuffle Two Arrays avec la fonction sklearn.utils.shuffle() en Python
  2. NumPy Shuffle Two Arrays avec la fonction numpy.random.shuffle()
  3. NumPy Shuffle deux tableaux correspondants avec la fonction numpy.random.permutation() en Python
NumPy Shuffle deux tableaux

Ce tutoriel présentera comment mélanger deux tableaux NumPy en Python.

NumPy Shuffle Two Arrays avec la fonction sklearn.utils.shuffle() en Python

Supposons que nous ayons deux tableaux de même longueur ou de mêmes dimensions principales, et que nous voulions les mélanger tous les deux de manière à ce que les éléments correspondants dans les deux tableaux restent correspondants. Dans ce cas, nous pouvons utiliser la fonction shuffle() dans la bibliothèque sklean.utils en Python. Cette fonction shuffle() prend les tableaux comme paramètres d’entrée, les mélange de manière cohérente et renvoie une copie mélangée de chaque tableau. Voir l’exemple de code suivant.

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)

Production:

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

Dans le code ci-dessus, nous avons mélangé les deux tableaux, array1 et array2, avec la fonction shuffle() à l’intérieur de la bibliothèque sklearn.utils en Python. Nous avons d’abord créé les deux tableaux avec la fonction np.array(). Nous avons ensuite mélangé les tableaux avec la fonction shuffle() dans la bibliothèque sklearn.utils et enregistré les tableaux mélangés dans array1 et array2. En fin de compte, nous avons imprimé les éléments à l’intérieur des deux tableaux. La sortie montre que les éléments des deux tableaux correspondent même après le brassage.

NumPy Shuffle Two Arrays avec la fonction numpy.random.shuffle()

Si nous ne voulons pas importer le package sklearn et que nous voulons atteindre le même objectif que le précédent en utilisant le package NumPy, nous pouvons utiliser la fonction shuffle() à l’intérieur de la bibliothèque numpy.random. Cette fonction shuffle() prend une séquence et la rend aléatoire. Nous pouvons ensuite utiliser cette séquence aléatoire comme index pour les deux tableaux afin de les mélanger. L’exemple de code suivant nous montre comment mélanger deux tableaux avec la fonction 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)

Production:

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

Nous avons d’abord créé les tableaux avec la fonction np.array(). Nous avons ensuite créé une séquence d’entiers égale à la longueur du deuxième tableau avec la fonction np.arange(len(array2)). Après cela, nous avons randomisé la séquence avec la fonction shuffle() à l’intérieur de la bibliothèque np.random et l’avons utilisée comme index pour les deux tableaux afin de les mélanger.

NumPy Shuffle deux tableaux correspondants avec la fonction numpy.random.permutation() en Python

Nous pouvons également utiliser la fonction permutation() dans la bibliothèque numpy.random pour créer une séquence aléatoire d’entiers dans une plage spécifiée en Python. Cette séquence peut ensuite être utilisée comme index pour les deux tableaux afin de les mélanger.

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)

Production:

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

Dans le code ci-dessus, nous avons défini une fonction shuffle() qui prend deux tableaux et les rend aléatoires avec la fonction permutation() à l’intérieur de la bibliothèque numpy.random en Python. Nous avons spécifié que la longueur de la séquence aléatoire est égale au nombre d’éléments du deuxième tableau avec la fonction len(y). Nous avons ensuite utilisé la séquence aléatoire p comme indice pour les deux tableaux et les avons renvoyés. Les tableaux mélangés renvoyés par la fonction shuffle() sont stockés dans les tableaux array1 et 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