앞서 포스팅했던 indexing은 여러 형태의 indexing이 있다.
이번 포스팅에서는 boolean indexing과 fancy indexing을 포스팅하고자한다.
boolean indexing
먼저, bool 자료형은 참(True)과 거짓(False)을 나타내는 자료형으로서 아래와 같은 2가지의 값만을 가진다.
- True - 참
- False - 거짓
처음 보면 이게 뭐야 하면서 개념이 쉬우면서 이해가 안되기도 하지만
간단하게 bool 내장 함수를 사용하면 자료형의 참과 거짓을 식별할 수 있다.
맞으면 참(true), 틀리면 거짓(false) 인 것이다.
c = np.arange(24).reshape(2,3,4)
print(c)
print(c.shape)
# 출력
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
(2, 3, 4)
1부터 23까지의 c 배열을 2행 4열의 3차원 형태로 reshape 하였다.
boolean indexing을 사용하여 원하는 부분만 가져와보자.
# boolean indexing
bool_idx = (c > 10)
print(bool_idx)
# 출력
[[[False False False False]
[False False False False]
[False False False True]]
[[ True True True True]
[ True True True True]
[ True True True True]]]
배열 c 내에서 10 초과인 값을 boolean indexing으로 불러왔고
그 결과, 10 초과인 값은 True, 10 이하인 값은 False 로 똑같은 형태를 유지한 채 출력이 된 것을 확인할 수 있다.
여기서 똑같은 형태는 기존 shape을 유지했다는 정도로 이해하면 될 것 같다.
fancy indexing
정수 인덱싱이라고도 하며 다른 형태의 넘파이 배열로 배열자체를 인덱싱 할 수 있는 기능을 말한다.
'Python > Build setting' 카테고리의 다른 글
| [Numpy]넘파이 연산(sum) (0) | 2022.08.29 |
|---|---|
| [Numpy]넘파이 연산 (0) | 2022.08.29 |
| [Numpy]넘파이 indexing과 slicing의 차이 (0) | 2022.08.29 |
| [Numpy]넘파이 배열 생성(dtype, astype) (0) | 2022.08.24 |
| [Numpy]넘파이 배열 생성(eye, identity) (0) | 2022.08.24 |
댓글