반응형
넘파이 인덱싱
인덱싱은 배열의 요소에 접근하는 방법이다.
첫번째 행의 두번째 열의 값이라면
arr = np.array([[1, 2, 3, 4],[5, 6, 7, 8]])
arr[0][1]
2
2가 선택된다.
아래와 같이 ,콤마로 구분해서 선택할 수 도 있다.
arr[0,1]
2차원 배열이기 때문에 하나의 숫자만 입력하면 행 전체가 선택된다.
arr[0]
array([1, 2, 3, 4])
배열의 범위를 벗어나게 되면 Index 오류가 뜬다.
arr[5][1]
IndexError: index 5 is out of bounds for axis 0 with size 2
고차원의 배열도 가장 바깥쪽의 대괄호부터 선택하면 된다.
arr = np.array([[[1, 2, 3, 4], [5, 6, 7, 8]],
[[1, 2, 3, 4], [5, 6, 7, 8]],])
arr.shape
(2, 2, 4)
arr[0][1][3]
8
슬라이싱
배열의 범위를 선택하는 방법이다.
행렬의 부분집합을 추출할 수 있다.
arr = np.array([[[1, 2, 3, 4], [5, 6, 7, 8]],
[[1, 2, 3, 4], [5, 6, 7, 8]],
[[1, 2, 3, 4], [5, 6, 7, 8]],])
arr.shape
(3, 2, 4)
arr[ : , : , : ]
array([[[1, 2, 3, 4],
[5, 6, 7, 8]],
[[1, 2, 3, 4],
[5, 6, 7, 8]],
[[1, 2, 3, 4],
[5, 6, 7, 8]]])
arr[0:1, 0:2, : ]
array([[[1, 2, 3, 4],
[5, 6, 7, 8]]])
인덱싱과 같은 위치에서 범위를 지정하게 된다.
: 콜론 앞의 숫자는 시작하는 인덱스, 뒤의 숫자는 끝나는 자리+1이다.
콜론 앞이나 뒤에 숫자를 넣지않으면 숫자가 없는 부분은 처음 또는 끝까지라는 뜻
[2 : ]- 2번째 인덱스부터 끝까지
[ : 3] - 처음부터 2번째 인덱스까지
[ : ] - 처음부터 끝까지
반응형
'파이썬 > Numpy' 카테고리의 다른 글
Numpy 연산(sum, mean, std, exp, vstack, hstack)과 axis의 의미 (0) | 2019.08.07 |
---|---|
Numpy 배열 생성 방법(arange, zeros, ones, random) (0) | 2019.08.07 |
Numpy shape 변환 (reshape, flatten) (1) | 2019.08.07 |
numpy 배열 타입(dtype), 모양(shape), 차원(ndim), 크기(size) (0) | 2019.08.06 |
Numpy 설치 및 기본 (0) | 2019.08.06 |
댓글