[Python] np.argsort로 두 개의 리스트 대응 정렬하기

someng·2022년 11월 14일
0

Python

목록 보기
6/11

<대응 정렬>

리스트 A, B가 있을 때

  • A를 정렬하고
  • B를 A에 대응되는 인덱스로 정렬하는 방법

🍄 예제

import numpy as np

A = [10, 5, 13, 2]
B = [2, 4, 5, 6]

A_sorted = np.sort(A) # [2, 5, 10, 13]
A_sorted_index = np.argsort(A) # [3, 1, 0, 2]

B_sorted_by_A = [B[i] for i in A_sorted_index] # [6, 4, 2, 5]

💡 응용: 2차원 배열인 경우

import numpy as np

A = [[7, 8], [4, 6], [11, 10]]	
B = [[2, 2], [2, 4], [3, 3]]
firsts = []

for x,y in A:
	firsts.append(x)
A.sort()	# [[4, 6], [7, 8], [11, 10]]

index = np.argsort(firsts)	# [1 0 2]

B = [B[i] for i in index]	# [[2, 4], [2, 2], [3, 3]]

참고 링크
https://jijibee.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%91%90-%EA%B0%9C%EC%9D%98-%EB%A6%AC%EC%8A%A4%ED%8A%B8%EB%A5%BC-%EB%8C%80%EC%9D%91-%EC%A0%95%EB%A0%AC%ED%95%98%EA%B8%B0

profile
👩🏻‍💻 iOS Developer

0개의 댓글