NumPy Shuffle Two Array

Muhammad Maisam Abbas 30 gennaio 2023
  1. NumPy Shuffle Two Array con la funzione sklearn.utils.shuffle() in Python
  2. NumPy Shuffle Two Array con la funzione numpy.random.shuffle()
  3. NumPy Mescola due array corrispondenti con la funzione numpy.random.permutation() in Python
NumPy Shuffle Two Array

Questo tutorial introdurrà come mescolare due array NumPy in Python.

NumPy Shuffle Two Array con la funzione sklearn.utils.shuffle() in Python

Supponiamo di avere due array della stessa lunghezza o delle stesse dimensioni iniziali e di volerli mescolare entrambi in modo che gli elementi corrispondenti in entrambi gli array rimangano corrispondenti. In tal caso, possiamo usare la funzione shuffle() all’interno della libreria sklean.utils in Python. Questa funzione shuffle() prende gli array come parametri di input, li mescola in modo coerente e restituisce una copia mescolata di ogni array. Vedere il seguente esempio di codice.

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)

Produzione:

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

Nel codice sopra, abbiamo mescolato i due array, array1 e array2, con la funzione shuffle() all’interno della libreria sklearn.utils in Python. Per prima cosa abbiamo creato entrambi gli array con la funzione np.array(). Abbiamo poi mischiato gli array con la funzione shuffle() all’interno della libreria sklearn.utils e salvato gli array mischiati all’interno di array1 e array2. Alla fine, abbiamo stampato gli elementi all’interno di entrambi gli array. L’output mostra che gli elementi di entrambi gli array corrispondono anche dopo aver mescolato.

NumPy Shuffle Two Array con la funzione numpy.random.shuffle()

Se non vogliamo importare il pacchetto sklearn e vogliamo raggiungere lo stesso obiettivo del precedente utilizzando il pacchetto NumPy, possiamo utilizzare la funzione shuffle() all’interno della libreria numpy.random. Questa funzione shuffle() prende una sequenza e la randomizza. Possiamo quindi usare questa sequenza randomizzata come indice per i due array per mescolarli. Il seguente esempio di codice ci mostra come possiamo mescolare due array con la funzione 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)

Produzione:

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

Per prima cosa abbiamo creato gli array con la funzione np.array(). Abbiamo quindi creato una sequenza di interi pari alla lunghezza del secondo array con la funzione np.arange(len(array2)). Successivamente, abbiamo randomizzato la sequenza con la funzione shuffle() all’interno della libreria np.random e l’abbiamo usata come indice per entrambi gli array per mescolarli.

NumPy Mescola due array corrispondenti con la funzione numpy.random.permutation() in Python

Possiamo anche usare la funzione permutation() all’interno della libreria numpy.random per creare una sequenza randomizzata di interi all’interno di un intervallo specificato in Python. Questa sequenza può quindi essere utilizzata come indice per entrambi gli array per mescolarli.

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)

Produzione:

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

Nel codice sopra, abbiamo definito una funzione shuffle() che prende due array e li randomizza con la funzione permutation() all’interno della libreria numpy.random in Python. Abbiamo specificato che la lunghezza della sequenza randomizzata è uguale al numero di elementi nel secondo array con la funzione len(y). Abbiamo quindi usato la sequenza casuale p come indice per entrambi gli array e li abbiamo restituiti. Gli array mischiati restituiti dalla funzione shuffle() sono memorizzati all’interno degli array array1 e 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