Python에서 배열 섞기

Muhammad Waiz Khan 2023년10월10일
  1. random.shuffle()메서드를 사용하여 Python에서 배열 셔플
  2. sklearn모듈의shuffle()메서드를 사용하여 Python에서 배열 셔플
Python에서 배열 섞기

이 튜토리얼에서는 파이썬에서 배열을 섞는 다양한 방법을 살펴볼 것입니다. 배열의 셔플 링은 배열에서 요소의 위치를 재배 열하는 것을 의미합니다. 배열 셔플 링 애플리케이션 중 하나는 모델 학습에 있으며, 여기서 데이터 세트를 섞어 모델의 학습 품질을 개선해야합니다. 또한 많은 통계 응용 프로그램에 사용될 수 있습니다.

random.shuffle()메서드를 사용하여 Python에서 배열 셔플

random.shuffle()메소드는 시퀀스를 입력으로 받아 섞습니다. 여기서 주목해야 할 중요한 점은random.shuffle()이 새 시퀀스를 출력으로 반환하지 않고 대신 원래 시퀀스를 셔플한다는 것입니다. 따라서 유효한 입력 시퀀스는 배열 또는 목록 등과 같은 변경 가능한 데이터 유형 만 될 수 있습니다.

random.shuffle()메서드는 1D 시퀀스에서만 작동합니다. 아래 예제 코드는random.shuffle()을 사용하여 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)

출력:

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

sklearn모듈의shuffle()메서드를 사용하여 Python에서 배열 셔플

sklearn.utils.shuffle(array, random_state, n_samples)메소드는 입력과 첫 번째 차원이 동일한 배열, 목록 또는 데이터 프레임과 같은 색인 생성 가능한 시퀀스를 가져와 입력으로 제공된 셔플 된 시퀀스의 복사본을 반환합니다.

sklearn.utils.shuffle()은 원래 입력을 변경하지 않지만 입력의 섞인 사본을 반환합니다. 입력은 단일 또는 다중 시퀀스 일 수 있습니다. random_state매개 변수는 임의의 숫자 생성을 제어하는 ​​데 사용됩니다. 정수로 설정하면 메서드는 매번 동일한 셔플 된 시퀀스를 반환합니다. n_samples는 샘플 수를 나타내며 기본값은 입력 기본값의 첫 번째 차원과 같으며 입력 배열의 길이보다 크지 않아야합니다.

노트
입력이 2D 인 경우sklearn.utils.shuffle()메서드는 행만 섞습니다.

아래 예제 코드는sklearn.utils.shuffle()메서드를 사용하여 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)

출력:

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

관련 문장 - Python Array