[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🛠 기타/Data & AI

[파이썬] Numpy Fancy Indexing

inu 2020. 7. 9. 00:19
반응형

행 접근하기

a = np.array([[1,2,3],[4,5,6],[7,8,9]])
a[[1, 2]]

# =결과=
# array([[4,5,6],
#        [7,8,9]])
  • 앞서 간단하게 소개했던 바와 같이 [[]]안에 번호를 입력하면 특정 행(ROW)를 불러올 수 있다.

행과 열 접근하기

a = a.array([[1,2,3],[4,5,6],[7,8,9]])
a[[0, 1]][:, [0, 2]]

# =결과=
# array([[1, 3],
#       [4, 6]])
  • 앞서 사용한 방법의 응용이다.
  • 선택한 행에서 첫번째와 세번째 열에 해당하는 요소만 불러온다.

Boolean Indexing

arr = np.arange(100)
arrMask = ( (arr % 5) == 0 ) 
arr[arrMask]


# =결과=
# array([ 0,  5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80,
#        85, 90, 95])
  • 배열에 대한 조건을 주면, 해당 조건에 부합하는 요소들만 출력해준다.
arrMask = ( ( (arr % 5) == 0 )  & ( arr > 0) )
arr[arrMask]

# =결과=
# array([ 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85,
#        90, 95])
  • ~ (not), & (and) 연산자 혹은 | (or) 연산자를 통해 여러 조건을 줄 수도 있다.
arr = np.arange(100)
arr > 5

# =결과=
# array([False, False, False, False, False, False,  True,  True,  True,
#        True,  True,  True,  True,  True,  True,  True,  True,  True,
#        True,  True,  True,  True,  True,  True,  True,  True,  True,
#        True,  True,  True,  True,  True,  True,  True,  True,  True,
#        True,  True,  True,  True,  True,  True,  True,  True,  True,
#        True,  True,  True,  True,  True,  True,  True,  True,  True,
#        True,  True,  True,  True,  True,  True,  True,  True,  True,
#        True,  True,  True,  True,  True,  True,  True,  True,  True,
#        True,  True,  True,  True,  True,  True,  True,  True,  True,
#        True,  True,  True,  True,  True,  True,  True,  True,  True,
#        True,  True,  True,  True,  True,  True,  True,  True,  True,
#        True])
  • 단순히 arr > 5를 입력하면 각 요소의 불린값만 가져올 수 있다.
반응형