numpy_indexing & slicing
numpy indexing & slicing
인덱싱
- 파이썬 리스트와 동일한 개념으로 사용
- , 를 사용하여 각 차원의 인덱스에 접근 가능
1차원 벡터 인덱싱
1
import numpy as np
1
2
3# 1차원 벡터 인덱싱
x = np.arange(10)
print(x)1
2# 첫번째, 마지막, 4번째
x[0], x[-1], x[3]1
2
3# 4번째 값을 100으로 변경
x[3] = 100
print(x)2차원 행렬 인덱싱
1
2x = np.arange(10).reshape(2, 5)
print(x)1
2# 0번째 행의 2번째 열의 값 가져오기
x[0, 2]3차원 행렬 인덱싱
1
2
3# 4행 3열의 행렬이 3개를 만듬
x = np.arange(36).reshape(3, 4, 3)
print(x)1
2# 0번째 행렬을 가져옴
x[0]1
x[1, 2]
1
2# 인덱스를 하나 명시할 때마다 차원이 하나씩 줄어듬
x[1, 2, 1]
슬라이싱
- 리스트, 문자열 slicing과 동일한 개념으로 사용
- , 를 사용하여 각 차원 별로 슬라이싱 가능
- 슬라이싱으로 해도 차원이 바뀌지 않음
1 | x = np.arange(10) |
1 | x[1:7] |
1 | # 슬라이싱을 해도 차원이 바뀌지는 않음 |
- 2차원 행렬 슬라이싱
1
2x = np.arange(10).reshape(2, 5)
print(x)1
2
3
4# 6, 7, 8 가져오기
# 모든 행 가져오기 x[:]
# 컬럼부분 가져오기 x[:, 1:4]
x[:, 1:4]1
2# 모든 행의 앞의 2번째만 가져오기
x[:, :2]1
2
3
4
5# 인덱싱과 슬라이싱 혼합
# 0번째를 가져오고 2번째에서 자름
# 앞에 0을 사용하여 인덱스를 사용하여 차원이 하나 줄음
# 크기가 2인 벡터
x[0, :2]1
2# 자원을 유지하면서 위와 동일한 값 가져오기
x[:1, :2] - 3차원 텐서 슬라이싱
1
2
3# 차원을 유지하면서 0, 1, 2, 3, 4, 5가져오기
# x[:1]첫번째 행렬 가져오기
x[:1, :2, :]1
2
3# 2차원 행렬에서 0, 1, 2, 3, 4, 5가져오기
# x[:1]첫번째 행렬 가져오기
x[0, :2, :]
You need to set
install_url
to use ShareThis. Please set it in _config.yml
.