[NumPy] ndarray 인덱싱 & 슬라이싱

|

인덱싱

파이썬 리스트와 동일한 개념.

, 를 이용하여 각 차원의 인덱스에 접근 가능.

1차원 벡터 인덱싱

x = np.arange(10)
print(x)
print(x[0], x[-2])


2차원 행렬 인덱싱

여전히 음수 인덱싱도 가능함.

x = np.arange(10).reshape(2,5)
print(x)

print(x[0])
print(x[0,3])
print(x[1,2])
print(x[1,-1])


3차원 텐서 인덱싱

인덱싱을 쓰면 차원이 줄어든다!!


슬라이싱

리스트, 문자열 slicing과 동일한 개념으로 사용.

,를 사용하여 각 차원 별로 슬라이싱 가능.

2차원 행렬 슬라이싱

여기서 123, 678 만 가져오고 싶을 때..

두 행은 모두 걸치고 있으니 행은 모두 필요하고

열은 1,2,3 열만 필요하니까 1:4 로 슬라이싱 해주면 된다.

위의 경우는 인덱싱과 슬라이싱을 같이 쓴 경우인데

이 때 인덱싱을 썼기 때문에 차원이 줄어든 것을 확인할 수 있다.

위와 같이 인덱싱으로 0번째 행을 표시하면 차원이 줄어들지 않는다.


3차원 텐서 슬라이싱

결과는 역시나 3차원 텐서

그러나 인덱싱을 쓴 순간 2차원 행렬을 반환.

위 내용은 fastcampus 강의 내용을 정리한 것입니다.

Comments