728x90
넘파이에서는 unravel_index라는 함수를 이용해서 어떤 index를 인자로 넘겨받은 shape에 매핑되는 index를 반환받을 수 있다.
numpy docs에서는 다음과 같은 예제를 보여준다.
>>> np.unravel_index([22, 41, 37], (7,6))
(array([3, 6, 6]), array([4, 5, 1]))
이 코드는 인자로 주어진 리스트의 index들인 22, 41, 37을 7*6 행렬에 매핑한 결과인 row index [3, 6, 6], column index [4, 5, 1]을 반환한 것을 볼 수 있다.
스택 오버플로우 스레드에서 아래와 같은 시각화 자료를 보여준다.
[[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, *22*, 23], <- (3, 4)
[24, 25, 26, 27, 28, 29],
[30, 31, 32, 33, 34, 35],
[36, *37*, 38, 39, 40, *41*]]
(6, 1) (6,5)
이를 보면 unravel_index가 어떤 역할을 하는지 쉽게 이해할 수 있다.
unravel_index는 3차원 이상의 텐서에서도 적용이 가능하니 flatten array를 효과적으로 다룰 수 있다.
728x90
'Untagged' 카테고리의 다른 글
비전공자도 쉽게 따라하는 git 설치 (0) | 2024.09.23 |
---|---|
PS 노베이스의 ICPC 도전 가이드 (1) | 2024.01.01 |
리팩터링 2판 요약 - 챕터 6 (1) | 2023.12.17 |
리팩터링 2판 요약 - 챕터 3 (0) | 2023.12.03 |
리팩터링 2판 요약 - 챕터 2 (1) | 2023.11.12 |