Mischen eines Arrays in Python

Muhammad Waiz Khan 10 Oktober 2023
  1. Mischen eines Arrays in Python mit der Methode random.shuffle()
  2. Mischen eines Arrays in Python mit der Methode shuffle() des Moduls sklearn
Mischen eines Arrays in Python

In diesem Tutorial werden wir uns mit den verschiedenen Methoden zum Mischen eines Arrays in Python beschäftigen. Das Mischen eines Arrays bedeutet, dass die Positionen der Elemente im Array neu angeordnet werden. Eine der Anwendungen für das Mischen von Arrays ist das Modelltraining, bei dem wir unseren Datensatz mischen müssen, um die Trainingsqualität des Modells zu verbessern. Es könnte auch in vielen Anwendungen der Statistik verwendet werden.

Mischen eines Arrays in Python mit der Methode random.shuffle()

Die Methode random.shuffle() nimmt eine Sequenz als Eingabe und mischt sie. Wichtig dabei ist, dass random.shuffle() keine neue Sequenz als Ausgabe zurückgibt, sondern die ursprüngliche Sequenz mischt. Daher kann die gültige Eingabesequenz nur ein veränderlicher Datentyp wie ein Array oder eine Liste etc. sein.

Die Methode random.shuffle() funktioniert nur bei 1D-Sequenzen. Der folgende Beispielcode demonstriert, wie die Methode random.shuffle() zum Mischen eines Arrays in Python verwendet werden kann.

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)

Ausgabe:

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

Mischen eines Arrays in Python mit der Methode shuffle() des Moduls sklearn

Die Methode sklearn.utils.shuffle(array, random_state, n_samples) nimmt indizierbare Sequenzen wie Arrays, Listen oder Dataframes etc. mit der gleichen ersten Dimension als Eingabe und gibt die Kopien der gemischten Sequenzen zurück, die als Eingabe bereitgestellt werden.

Die Methode sklearn.utils.shuffle() verändert die ursprüngliche Eingabe nicht, sondern gibt die gemischte Kopie der Eingabe zurück. Die Eingabe kann eine einzelne oder mehrere Sequenzen sein. Der Parameter random_state wird verwendet, um die Zufallsgenerierung von Zahlen zu steuern. Wenn er auf eine ganze Zahl gesetzt ist, gibt die Methode jedes Mal die gleiche gemischte Sequenz zurück. Der Parameter n_samples stellt die Anzahl der Samples dar. Sein Standardwert ist gleich der ersten Dimension der Eingabevorgabe und sollte nicht größer als die Länge des/der Eingabe-Arrays sein.

Hinweis
Wenn die Eingabe 2D ist, wird die Methode sklearn.utils.shuffle() nur die Zeilen mischen.

Der folgende Beispielcode demonstriert, wie die Methode sklearn.utils.shuffle() verwendet wird, um ein gemischtes Array (Arrays) in Python zu erhalten.

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)

Ausgabe:

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

Verwandter Artikel - Python Array