Base/Python

[Python] Numpy를 통한 배열 indexing(Boolen indexing, fancy indexing )

반응형

Numpy를 통한 배열 indexing


 

2차원 배열 indexing

np를 통해 2차원 배열을 만들었다.

그 배열에서 인덱싱을 통해 값을 뽑아온다.

twoAry[0] 은 첫번째 행을 뜻하고 

twoAry[0][0] 은 첫번째 행의 첫번째 열을 뜻한다. 

twoAry[0,0] 또한 마찬가지의 의미이다.

 

 

 

 

 

 

- boolean Indexing

 값에 boolean(True,False)가 들어가면 boolean indexing 이다.

 

해당 2차원 배열을 만들었을 때 만약 짝수 값만 가져오는 것을 위해서

 

arr 를 연산으로 보고 이때 나온 배열이 boolean Indexing 구한다.

 

이걸 arr[] 안에 행으로 넣어서 사용하면 해당하는 값만 추출된다.

 

 

 

 

이렇게 하나의 배열이 있었을 때 

 

이런식으로 연산을 안에 넣어서 뽑아 올수도 있다.

 

 

-fancy Indexing 

정수 배열을 indexer로 사용해서 다차원 배열로 부터 Indexing하는 방법

이걸 해석해서 보면 np.arrange () 를 사용해서 0부터 12까지의 숫자를 1간격으로 값을 가져온다.

그 다음 reshape를 통해 3행 4열로 만들어준다.

 

이 형태로 값을 가져오면 스칼라 타입( = 10)으로 가져와지고

 

이 형태로 값을 가져오면 ([6]) 배열 타입으로 가져오게 된다. 이런 타입이 fancy indexing 이다.

 

이런 형태면 2차원의 배열로 가져오 게된다. 이런식으로 어떤 식의 코드로 값을 가져오냐 따라 리턴이 달라질 수 있다.

 

이렇게 가져온 값은 aryinfo로 형태를 봤을때 numpy의 형태로 가져오게 된다. 이런식으로 리턴값이 어떻게 들어오는지를 잘 확인해야한다.

 

 

이 같은 경우에는 index를 통해 값을 받고

 

 

위와 같은 경우에는 sliceing 해서 값을 리턴 받는다. 이때는 차원이 하나 더 붙는다. 

 

이렇게 가져오는 형태에 따라서 다른 리턴값을 가져오는 것을 볼 수 있다.

 

 

반응형