본문 바로가기
Python

python 1차원 리스트 다중 인덱싱 하기

by 스프링섬머 2023. 7. 16.
728x90

1차원 리스트에서 원하는 인덱스 순서대로 재정렬하는 코드입니다. 

정렬할 인덱스를 리스트로 구하고 -> multi_index, 

정렬할 리스트를 2차원으로 만들어서 각 행마다 multi_index를 수행하여 재정렬,

다시 1차원으로 변환후 리스트로 전환. 

# 1차원 리스트or배열 다중 인덱싱하여 재정렬하기.                    
import numpy as np
import random

random.seed(7)  # random seed 고정                 

x = [5, 6, 7, 8]

multi_index = list(range(len(x)))  # [0,1,2,3]   
random.shuffle(multi_index)  # [3,1,0,2]         

x = np.array(x)
x = np.reshape(x, (len(x), -1))  # 2차원 변환
x = x[multi_index]  # 행별 인덱싱하여 재배열               
x = x.flatten().tolist()  # [8,6,5,7]  1차원 변환    

+ 1차원 리스트의 원하는 인덱스만 추출하는 것도 가능합니다

728x90