본문 바로가기
AI/[TEAMLAB]Numpy 사용법

[TEAMLAB] 3 - 9. numpy - boolean & fancy index

by 쵸빙 2020. 1. 20.

boolean index

     boolean index는 numpy 배열에서 특정 조건에 맞는 인덱스만 출력하는 것이다.

 

     A라는 큰 배열이 있었을 때 조건을 15보다 작은지로 두고, B의 타입을 np.int라고 두면 true인 것은 1로, false인 것은 0으로 출력하게 된다.

 

fancy index

     이번에는 fancy index에 대해 알아보도록 하겠다. fancy index는 numpy의 array를 index value로써 사용해서 값을 추출하는 방법이다. 위의 예에서 보면 b의 각 원소들이 마치 index처럼 사용되어 해당하는 a의 값을 가져오는 것을 볼 수 있다.

take 함수도 같은 역할을 한다. 사실 a[b]의 방법보다 take의 방법이 한 눈에 보기 좋아서 더 낫다고 한다.

 

     matrix 형태의 데이터들도 fancy index가 가능하다. 위의 예시를 보자면 b는 row의 역할을 하고 있고,

c는 column의 역할을 하고 있다.

fancy index를 사용할 때 원래의 vector나 matrix에서 있지 않은, 벗어난 범위의 수를 index로 설정한다면 오류가 뜰 것이고, 반드시 데이터 타입이 int여야한다는 것을 주의하자.

 

     만약 이렇게 하나만 준다면 row로 판단한다. 그래서 0번째 row인 1, 4, 1번째 row인 9, 16을 각 인덱스별로 사용한다.

 

다음 시간이 마지막으로, data i/o에 대해서 알아보도록 하겠다.