ndarray 인덱싱
- 파이썬의 리스트와 동일한 개념으로 사용
- ,를 이용하여 각 차원의 인덱스에 접근 가능
- 인덱싱을 통해 차원이 변경될 수 있다.
x = np.arange(36).reshape(3, 4, 3)
x[1]
#3차원 1번 인덱스를 반환
#3차원에서 2차원으로 변경됨.
ndarray 슬라이싱
- 리스트, 문자열의 슬라이싱과 동일한 개념으로 사용
- , 를 사용하여 각 차원 별로 슬라이싱 가능
- 인덱싱과 달리 슬라이싱을 해도 차원이 줄지는 않음
x = np.arange(10).reshape(2, 5)
# [[0 1 2 3 4]
# [5 6 7 8 9]]
x[:, 1:4]
# 행은 전체, 열은 1번 인덱스 이상 4번 인덱스 미만
# array([[1, 2, 3],
# [6, 7, 8]])
행렬 인덱싱
정수 배열 혹은 불리언 배열을 인덱서로 사용한 인덱싱 방법이다. 대괄호 ( Bracket, [] ) 안의 정보를 숫자나 슬라이스가 아닌 ndarray 행렬로 받는다.
- 불리언 ( Boolean ) 행렬 인덱싱
- True인 원소만 선택
- 인덱스의 크기가 행렬의 크기와 같아야 한다.
- 정수 행렬 인덱싱
- 지정된 위치의 원소만 선택
- 인덱스의 크기가 행렬의 크기와 달라도 된다.
- 같은 원소를 반복해서 가리킬 경우, 원래 원 행렬보다 커질 수 있다.
x = np.random.randint(1, 100, size=10)
x[x % 2 == 0]
불리언 방식을 활용하여 위와 같이 필터를 만들어 젹용 할 수도 있다. ndarray 객체의 경우 벡터화 연산이 가능하기 때문에 객체 자체에 연산을 할 수 있다. 연산을 통해 반환된 ndarray 객체를 불리언 행렬 인덱서로 활용 한다.
'데이터 분석' 카테고리의 다른 글
Numpy Broadcasting (0) | 2020.02.29 |
---|---|
Numpy 기본 함수 (0) | 2020.02.29 |
Numpy ndarray shape 변경 (0) | 2020.02.29 |
Numpy ndarray 생성 (0) | 2020.02.29 |
Numpy 개요 (0) | 2020.02.29 |
댓글