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
는 샘플 수를 나타내며 기본값은 입력 기본값의 첫 번째 차원과 같으며 입력 배열의 길이보다 크지 않아야합니다.
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]