[Numpy] 인덱싱과 슬라이싱
인덱싱
- 파이썬 리스트와 동일한 개념으로 사용
- 인덱싱을 하면 차원이 준다는 점을 유의!
1차원 벡터 인덱싱
x = np.arange(10)
print(x)
[0 1 2 3 4 5 6 7 8 9]
x[0]
0
x[0] = 100
print(x)
[100 1 2 3 4 5 6 7 8 9]
2차원 행렬 인덱싱
x = np.arange(10).reshape(2, 5)
print(x)
[[0 1 2 3 4]
[5 6 7 8 9]]
print(x[0])
print(x[0,0])
[0 1 2 3 4]
0
3차원 텐서 인덱싱
x = np.arange(36).reshape(3, 4, 3)
print(x)
[[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
[[12 13 14]
[15 16 17]
[18 19 20]
[21 22 23]]
[[24 25 26]
[27 28 29]
[30 31 32]
[33 34 35]]]
print(x[0])
print(x[0, 0])
[100 1 2 3 4]
100
슬라이싱
- 리스트, 문자열 slicing과 동일한 개념으로 사용
- 슬라이싱은 차원이 바뀌지는 안는다는 점을 주의!
1차원 벡터 슬라이싱
x = np.arange(10)
x[1:5]
array([1, 2, 3, 4])
2차원 행렬 슬라이싱
x = np.arange(10).reshape(2, 5)
print(x)
[[0 1 2 3 4]
[5 6 7 8 9]]
x[:, 1:3] #행은 전체 행, 열은 2열과 3열을 슬라이싱
array([[1, 2],
[6, 7]])
3차원 텐서 슬라이싱
x = np.arange(36).reshape(3, 4, 3)
print(x)
[[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
[[12 13 14]
[15 16 17]
[18 19 20]
[21 22 23]]
[[24 25 26]
[27 28 29]
[30 31 32]
[33 34 35]]]
y = x[:1, :2, :] #깊이, 행, 열 순서
print(y)
print(y.shape) #2행3열의 깊이 1인 shape인것을 확인할 수 있다.
[[[0 1 2]
[3 4 5]]]
(1, 2, 3)
print(y.ndim) #슬라이싱을 통해 차원이 줄어들지 않음을 알 수 있다.
3
Author And Source
이 문제에 관하여([Numpy] 인덱싱과 슬라이싱), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@skkumin/Numpy-인덱싱과-슬라이싱저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)