[python]배열 값, 인덱스 정렬(sorted list of indices)

hjeun0111·2022년 9월 28일
0

개발을 하다 보면 정렬하는 일이 빈번하다.
배열의 값을 기준으로 정렬하는 것은 이미 내장된 함수가 많기 때문에, 쉽게 해결이 가능하다.

그러나, 배열 정렬 결과를 값으로 출력하는게 아니라.
배열의 인덱스로 결과를 출력 할 때 참고하고자 정리함

다른 언어로 테스트한 예제 포스팅 링크
(cpp) sorted list of indices 예제
(java) sorted list of indices 예제

1.python 내장 함수 사용

1.1 오름 차순 (배열 값 정렬, 배열 값의 인덱스 정렬 출력 예제)
ary = [102, 67, 35, 77, 153]

value = sorted(ary, reverse=False)
index = sorted(range(len(ary)), key=lambda k: ary[k], reverse=False)
print('value: ', value)
print('index: ', index)

---출력----
value:  [35, 67, 77, 102, 153]
index:  [2, 1, 3, 0, 4]
1.2 내림 차순 (배열 값 정렬, 배열 값의 인덱스 정렬 출력 예제)
ary = [102, 67, 35, 77, 153]

value = sorted(ary, reverse=True)
index = sorted(range(len(ary)), key=lambda k: ary[k],reverse=True)
print('value: ', value)
print('index: ', index)

---출력----
value:  [153, 102, 77, 67, 35]
index:  [4, 0, 3, 1, 2]

2.numpy 사용

2.1 오름 차순 (배열 값 정렬, 배열 값의 인덱스 정렬 출력 예제)
import numpy as np
ary = [102, 67, 35, 77, 153]

value = np.sort(ary)
index = np.argsort(ary)
print('value: ', value)
print('index: ', index)

---출력----
value:  [ 35  67  77 102 153]
index:  [2 1 3 0 4]
2.2 내림 차순 (배열 값 정렬, 배열 값의 인덱스 정렬 출력 예제)
import numpy as np
ary = [102, 67, 35, 77, 153]

np_s=np.array(ary)
value = -np.sort(-np_s)
index = np.argsort(-np_s)
print('value: ', value)
print('index: ', index)

---출력----
value:  [153 102  77  67  35]
index:  [4 0 3 1 2]

한번씩 잊을만 하면 필요한 애들임..

그럼, 이만!

다른 언어로 테스트한 예제 포스팅 링크
(cpp) sorted list of indices 예제
(java) sorted list of indices 예제

profile
I'm a software engineer

0개의 댓글