numpy 배열의 또 다른 멋진 기능으로 ‘스마트’ 인덱싱과 ‘스마트’ 슬라이싱이 있다. 여기서 인덱스는 스칼라 값이 아닌 인덱스로 구성된 배열이나 리스트가 된다. 추출 결과는 인덱스에서 참조된 아이템의 배열이다. S&P 리스트에서 두 번째, 세 번째, 마지막 주식 기호를 추출해 보자(이것이 바로 ‘스마트’ 인덱싱이다).
sap[[1, 2, -1]]
>>>
array(['ABT', 'BBV', 'ADT'],
dtype='<U4')
이번에는 변형된 배열에서 중간 열에 있는 모든 행을 뽑아 보자(‘스마트’ 슬라이싱이다). 두 가지 방법으로 할 수 있다.
sap2d[:, [1]]
>>>
array([['ABT'],
['ATVI']],
dtype='<U4')
sap2d[:, 1]
>>>
array(['ABT', 'ATVI'],
dtype='<U4')