티스토리 뷰
Stochastic Gradient Descent(SGD) 에서 dataset을 shuffle하기 위해 사용된 permutation 함수를 정리한다.
Permutation
sequence를 무작위로 재배치하거나 재배치된 range를 반환하는 역할을 해준다.
매개변수
random.Generator.permutation(x, axis=0)
- x: int 또는 array_like
x가 integer 이면, np.arange(x)를 무작위로 재배치한다.
x가 array이면, 복사본을 생성 후 원소들을 무작위로 재배치한다. - axis
x가 셔플되는 축이다. default 는 0이다.
반환
- out: ndarray
재배치된 sequence나 array range가 반환된다.
예제
x : int인 경우
rng = np.random.default_rng()
rng.permutation(10)
array([1, 7, 4, 3, 0, 9, 2, 5, 8, 6]) # random
x: array인 경우
rng.permutation([1, 4, 9, 12, 15])
array([15, 1, 9, 4, 12]) # random
x: 2차원 array인 경우
arr = np.arange(9).reshape((3, 3))
rng.permutation(arr)
array([[6, 7, 8], # random
[0, 1, 2],
[3, 4, 5]])
axis = 1인 경우
x가 셔플 되는 축을 변경하기 위하여 사용하나, permutation 이 전체 배열 요소를 재배치 하므로 크게 달라지는 부분은 없다. 여기서는 사용 예와 결과만 확인하고 넘어간다.
arr = np.arange(9).reshape((3, 3))
rng.permutation(arr, axis=1)
array([[0, 2, 1], # random
[3, 5, 4],
[6, 8, 7]])
'Python' 카테고리의 다른 글
[Numpy] meshgrid (0) | 2022.04.09 |
---|