NumPy 셔플 두 배열

Muhammad Maisam Abbas 2023년1월30일
  1. 파이썬에서sklearn.utils.shuffle()함수를 사용하여 NumPy 셔플 두 배열
  2. NumPy numpy.random.shuffle()함수를 사용하여 두 배열을 섞습니다
  3. NumPy는 파이썬에서numpy.random.permutation()함수를 사용하여 두 개의 대응하는 배열을 섞습니다
NumPy 셔플 두 배열

이 튜토리얼은 파이썬에서 두 개의 NumPy 배열을 섞는 방법을 소개합니다.

파이썬에서sklearn.utils.shuffle()함수를 사용하여 NumPy 셔플 두 배열

길이가 같거나 선행 차원이 같은 두 개의 배열이 있고 두 배열의 해당 요소가 해당하는 상태로 유지되도록 두 배열을 섞고 싶다고 가정합니다. 이 경우 Python의sklean.utils라이브러리 내에서shuffle()함수를 사용할 수 있습니다. 이shuffle()함수는 배열을 입력 매개 변수로 취하고 일관되게 섞은 다음 각 배열의 섞인 복사본을 반환합니다. 다음 코드 예제를 참조하십시오.

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)

출력:

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

위의 코드에서 우리는 Python의sklearn.utils라이브러리에있는shuffle()함수를 사용하여array1array2두 배열을 섞었습니다. 먼저np.array()함수로 두 배열을 모두 만들었습니다. 그런 다음sklearn.utils라이브러리 내에서shuffle()함수로 배열을 섞고array1array2안에 섞인 배열을 저장했습니다. 결국 두 배열 내부에 요소를 인쇄했습니다. 출력은 셔플 링 후에도 두 배열의 요소가 일치 함을 보여줍니다.

NumPy numpy.random.shuffle()함수를 사용하여 두 배열을 섞습니다

sklearn패키지를 가져오고 싶지 않고 NumPy 패키지를 사용하여 이전 목표와 동일한 목표를 달성하려면numpy.random라이브러리 내에서shuffle()함수를 사용할 수 있습니다. 이shuffle()함수는 시퀀스를 받아서 무작위 화합니다. 그런 다음이 무작위 시퀀스를 두 배열의 인덱스로 사용하여 셔플 할 수 있습니다. 다음 코드 예제는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)

출력:

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

먼저np.array()함수로 배열을 생성했습니다. 그런 다음np.arange(len(array2))함수를 사용하여 두 번째 배열의 길이와 동일한 정수 시퀀스를 만들었습니다. 그 후,np.random라이브러리 내에서shuffle()함수를 사용하여 시퀀스를 무작위 화하고 두 배열을 섞는 인덱스로 사용했습니다.

NumPy는 파이썬에서numpy.random.permutation()함수를 사용하여 두 개의 대응하는 배열을 섞습니다

또한numpy.random라이브러리 내에서permutation()함수를 사용하여 Python에서 지정된 범위 내에서 무작위 정수 시퀀스를 만들 수 있습니다. 그런 다음이 시퀀스를 두 배열의 인덱스로 사용하여 셔플 할 수 있습니다.

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)

출력:

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

위의 코드에서 우리는 Python의numpy.random라이브러리에있는permutation()함수를 사용하여 두 개의 배열을 취하고 무작위 화하는 함수shuffle()을 정의했습니다. len(y)함수를 사용하여 두 번째 배열의 요소 수와 같도록 무작위 시퀀스의 길이를 지정했습니다. 그런 다음 무작위 시퀀스p를 두 배열의 인덱스로 사용하고 반환했습니다. shuffle()함수에 의해 반환 된 셔플 된 배열은array1array2배열에 저장됩니다.

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