본문 바로가기
파이썬기초

넘파이 팬시 인덱싱(numpy Fancy Indexing)

by AI독학 2023. 12. 31.

 

오늘은 팬시인덱싱에서 대해 정리를 해 보자 

 

팬시인덱싱은 인덱스 집합을 지정하면 해당위치의 인덱스에 ndarray를 반환 하는 인덱싱 방식 

 

사실 기존의 인덱싱과 큰 차이점을 모르겠음, 다차원에 인덱싱을 할 수 있다는 것이 큰 차이 인 것인 것 같다. 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import pandas as pd
import numpy as np
 
arr1 = np.arange(12)
arr2 = arr1.reshape(3,4)
 
print("일반인덱싱")
print(arr1[:3])
print(arr2[2:3])
 
 
print("팬시인덱싱")
print(arr2[[0,1,2]])
print(arr2[[0,1],0:2])
 
 
cs

 

 

결과물 

 

(0차원, 1차원)

 

array[[0차원],[1차원]] 이렇게 이루어 진다고 생각 함 될 것 같다. 3차원을 한번해 봐야겠다.

 

 

 

1
2
3
4
5
6
7
8
9
10
import pandas as pd
import numpy as np
 
arr1 = np.arange(12)
arr3 = arr1.reshape(3,2,2)
print("3차원")
print(arr3)
print("3차원 팬시 인덱싱")
print(arr3[[0,1],[1],[1]])
 
cs

 

결과물 

 

3차원 개념으로 보면 처음에 인덱싱이 0,1 이니 , [[0,1],[2,3]] - 0차원의 0의 값, [[4,5],[6,7]] - 0차원의 1의 값

에서 1차원의 1의 값이니, [2,3], [6,7]의 값이 인덱싱 되고 

2차원의 2의 값이어서 [3,7] 값이 나온다.