-
[NumPy] Fancy Indexing 팬시 인덱싱Road to Data Analyst/Python 2022. 6. 13. 09:42
import numpy as np a1 = np.array([1,2,3,4,5]) print(a1) print(a1[0], a1[2]) ind = [0,2] print(a1[ind]) #한번에 묶어서 ind = np.array([[0,1], [2,0]]) print(a1[ind]) #1차원 배역이지만, 2차원 인덱스에 영향을 받아 2차원으로 결과 출력
1. print(a1[0], a1[2])와 같이 특정 위치를 지정하여 값을 받을 수 있다.
2. 또는 ind = [0, 2]와 같이 한번에 묶어서 값을 받을 수 있다.
3. 위에서도 주석으로 남겨 두었듯이 인덱스가 2차원 배열처럼 값을 알고자 하는 배열과 다른 차원일 때 : 인덱스의 영향을 받아 인덱스 배열 차원으로 변경된다. (여기서는 인덱스 배열 : 2차원, a1 배열 1차원 => a1[ind] => 2차원으로 결과값 나온다.)
import numpy as np a2 = np.array([[1,2,3], [4,5,6], [7,8,9]]) print(a2) row = np.array([0,2]) col = np.array([1,2]) print(a2[row, col]) #row = 0, col = 1 & row = 2, col = 2인 곳을 각각 찾아 보여주는 것임 print(a2[row, :]) print(a2[:, col]) print(a2[row, 1]) print(a2[2, col]) print(a2[row, 1:]) #slicing print(a2[1:, col])
1. print(a2[row, col])과 같이 row, col을 지정해주어서 값을 찾을 수 있다.
2. 특정 행이나 열에 해당하는 값을 모두 구하려고 할 때 print(a2[row, :])와 같이 구할 수도 있다.
3. 또는 특정 행 그리고 특정 범위 설정 (슬라이싱, slicing)도 가능하다. ('print(a2[row, 1:])')
'Road to Data Analyst > Python' 카테고리의 다른 글
[pandas] agg() & sort_values() - 데이터셋에서 가장 많이 팔린 상품 찾기 (0) 2022.09.12 [NumPy] Problem set (0) 2022.06.13 [Project Euler] Q7. 10001st prime (0) 2022.06.13 [Project Euler] Q6. Sum square difference (0) 2022.06.08 [Project Euler] Q5. Smallest multiple (0) 2022.06.06