NumPy Shuffle zwei Arrays

Muhammad Maisam Abbas 30 Januar 2023
  1. NumPy Shuffle zwei Arrays mit der Funktion sklearn.utils.shuffle() in Python
  2. NumPy Shuffle Zwei Arrays mit der Funktion numpy.random.shuffle()
  3. NumPy Shuffle zwei entsprechende Arrays mit der Funktion numpy.random.permutation() in Python
NumPy Shuffle zwei Arrays

In diesem Tutorial erfahren Sie, wie Sie zwei NumPy-Arrays in Python mischen.

NumPy Shuffle zwei Arrays mit der Funktion sklearn.utils.shuffle() in Python

Angenommen, wir haben zwei Arrays derselben Länge oder gleichen führenden Dimensionen und möchten sie beide so mischen, dass die entsprechenden Elemente in beiden Arrays übereinstimmen. In diesem Fall können wir die Funktion shuffle() innerhalb der Bibliothek sklean.utils in Python verwenden. Diese Funktion shuffle() nimmt die Arrays als Eingabeparameter, mischt sie konsistent und gibt eine gemischte Kopie jedes Arrays zurück. Siehe das folgende Codebeispiel.

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)

Ausgabe:

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

Im obigen Code haben wir die beiden Arrays array1 und array2 mit der Funktion shuffle() innerhalb der Bibliothek sklearn.utils in Python gemischt. Beide Arrays haben wir zunächst mit der Funktion np.array() erstellt. Wir haben dann die Arrays mit der Funktion shuffle() innerhalb der Bibliothek sklearn.utils gemischt und die gemischten Arrays in array1 und array2 gespeichert. Am Ende haben wir die Elemente in beiden Arrays gedruckt. Die Ausgabe zeigt, dass die Elemente beider Arrays auch nach dem Mischen übereinstimmen.

NumPy Shuffle Zwei Arrays mit der Funktion numpy.random.shuffle()

Wenn wir das Paket sklearn nicht importieren möchten und dasselbe Ziel wie das vorherige mit dem Paket NumPy erreichen möchten, können wir die Funktion shuffle() innerhalb der Bibliothek numpy.random verwenden. Diese Funktion shuffle() nimmt eine Sequenz und randomisiert sie. Wir können diese zufällige Sequenz dann als Index für die beiden Arrays verwenden, um sie zu mischen. Das folgende Codebeispiel zeigt uns, wie wir mit der Funktion numpy.random.shuffle() zwei Arrays mischen können.

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)

Ausgabe:

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

Die Arrays haben wir zuerst mit der Funktion np.array() erstellt. Anschließend haben wir mit der Funktion np.arange(len(array2)) eine Folge von ganzen Zahlen erstellt, die der Länge des zweiten Arrays entspricht. Danach haben wir die Sequenz mit der Funktion shuffle() innerhalb der Bibliothek np.random randomisiert und als Index für beide Arrays verwendet, um sie zu mischen.

NumPy Shuffle zwei entsprechende Arrays mit der Funktion numpy.random.permutation() in Python

Wir können auch die Funktion permutation() in der Bibliothek numpy.random verwenden, um in Python eine zufällige Folge von ganzen Zahlen innerhalb eines bestimmten Bereichs zu erstellen. Diese Sequenz kann dann als Index für beide Arrays verwendet werden, um sie zu mischen.

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)

Ausgabe:

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

Im obigen Code haben wir eine Funktion shuffle() definiert, die zwei Arrays nimmt und sie mit der Funktion permutation() innerhalb der Bibliothek numpy.random in Python randomisiert. Mit der Funktion len(y) haben wir die Länge der randomisierten Sequenz gleich der Anzahl der Elemente im zweiten Array festgelegt. Wir haben dann die randomisierte Sequenz p als Index für beide Arrays verwendet und diese zurückgegeben. Die von der Funktion shuffle() zurückgegebenen gemischten Arrays werden in den Arrays array1 und array2 gespeichert.

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