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