Mescola un array in Python

Muhammad Waiz Khan 30 gennaio 2023
  1. Mescola un array in Python usando il metodo random.shuffle()
  2. Mescola un array in Python usando il metodo shuffle() del modulo sklearn
Mescola un array in Python

In questo tutorial, esamineremo i vari metodi per mescolare un array in Python. Il mescolamento di un array significa riorganizzare le posizioni degli elementi nell’array. Una delle applicazioni di mescolamento degli array è nell’addestramento del modello, in cui dobbiamo mescolare il nostro set di dati per migliorare la qualità dell’addestramento del modello. Potrebbe anche essere utilizzato in molte applicazioni di statistica.

Mescola un array in Python usando il metodo random.shuffle()

Il metodo random.shuffle() prende una sequenza come input e la mescola. La cosa importante da notare qui è che random.shuffle() non restituisce una nuova sequenza come output ma invece mescola la sequenza originale. Pertanto la sequenza di input valida può essere solo tipi di dati modificabili come un array o una lista ecc.

Il metodo random.shuffle() funziona solo su sequenze 1D. Il codice di esempio sotto mostra come usare random.shuffle() per mescolare un array in 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)

Produzione:

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

Mescola un array in Python usando il metodo shuffle() del modulo sklearn

Il metodo sklearn.utils.shuffle(array, random_state, n_samples) accetta sequenze indicizzabili come array, liste o dataframe, ecc. Con la stessa prima dimensione dell’input e restituisce le copie delle sequenze mescolate fornite come input.

sklearn.utils.shuffle() non cambia l’input originale ma restituisce la copia mescolata dell’input. L’input può essere una o più sequenze. Il parametro random_state viene utilizzato per controllare la generazione casuale di numeri. Se è impostato su un numero intero, il metodo restituirà ogni volta la stessa sequenza mescolata. Il n_samples rappresenta il numero di campioni e il suo valore di default è uguale alla prima dimensione del default di input e non dovrebbe essere maggiore della lunghezza degli array di input.

Nota
Se l’input è 2D, il metodo sklearn.utils.shuffle() mescolerà solo le righe.

Il codice di esempio seguente mostra come utilizzare il metodo sklearn.utils.shuffle() per ottenere uno o più array mescolati in 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)

Produzione:

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

Articolo correlato - Python Array