전 글에 이어서 진행됩니다.


조건에 맞는 데이터 선택하기(boolean indexing)

x % 2 == 0을 사용해 데이터들을 boolean형태로 바꿔준다.

even_mask라는 변수에 조건 대입

원래있던 변수인 x에 대괄호를 사용해 x[even_mask]를 사용하면 해당 조건에 True인 값들만 다시 ndarray 형태로 나타내준다.

변수를 생략하고 x[조건]을 사용해도 바로 나타낼 수 있다.

 

다중조건 사용해서 데이터 선택하기

앞서는 단일조건에 해당한 이야기이다. 다중조건을 사용할 경우가 많은데, numpy에서는 and, or, not같은 논리 연산자 사용이 불가능하다. 그래서 and - & , or - |(엔터키 위에 원화 shift)로 대체하여 사용할 수 있다.

마찬가지로 조건을 가로로 묶고(중요), 연산 기호를 사용하여 다중 조건에 만족하는 값들을 가져올 수 있다. 


axis(축) 이해

몇몇 함수에는 axis keyword 파라미터가 존재한다. axis값이 없는 경우에는 전체 데이터에 대해 적용하고, 있는 경우에는 해당 axis를 따라서 연산 적용한다.

거의 대부분의 연산 함수들이 axis파라미터를 사용하고, 결과는 해당 axis가 제외된 나머지 차원의 데이터만 남게 된다.

aixs(축)이란? : 수학에서의 x, y, z 축이라고 생각하면 편하다.(axis=1이면 열방향(좌우 <->) , aixs=0이면 행방향(위아래)로 연산하게 된다.

 

1차원 데이터에 적용하기

1차원데이터에는 행과 열의 개념이 없다. 그래서 np.sum함수에 aixs=0을 주면 모든 값이 연산이 되어 출력이 나오고

aixs=1을 주면 행과 열의 개념이 없기 때문에 오류가 나오게 된다.

 

2차원 데이터에 적용하기

2차원 데이터에는 행과 열이 둘다 존재하므로 axis=0이면 행방향(위아래)으로 연산을 하게 되어 값이 나오게 되고, aixs=1을 주면 열방향(좌우)으로 연산을 하게 되어 값이 나오게 된다.

 

3차원 데이터에 적용하기

3차원 데이터에서는 축이 세개로 박스, 행, 열의 개념이 있다.

aixs = 0을 주면 상자끼리 같은 위치에 있는 값을 더하고,

axis=1을 주면 같은 상자 내, 같은 열 안에서 위에서 아래로 연산한다.

aixs=2를 주면 같은 상자 내, 같은 행 안에서 좌에서 우로 연산한다.

음수인 -1을 써서 가장 마지막 축을 사용할 수 있지만 보통 3차원데이터(텐서)이상으로 안 쓰기 때문에 권장하지 않는다.

 

튜플을 이용해 여러 축을 같이 사용하기

aixs에 여러 축을 입력해서 연산할 수 있는데, 0과 1를 준다고 가정을 하면  axis=0과 aixs=1이 동시에 연산된다고 생각하면 편하다.

198이란 값을 예를 들자면, aixs=0으로 0+12+24인 36이 나오게 되고

axis=1 연산을 하여 36+45+54+63 = 198이 나오게 된다.

 

 

 

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기