본문 바로가기
IT/파이썬

Numpy 배열 인덱싱(Indexing), 슬라이싱(Slicing)

by 깡타의 컴맹인생 2023. 4. 2.
반응형

Numpy 배열 인덱싱 슬라이싱

Numpy 배열에서 원하는 데이터를 가져오기 위한 방법으로 인덱싱과 슬라이싱이 있다. 인덱싱은 인덱스로 값을 찾아내는 것이고 슬라이싱은 인덱스 값으로 배열에서 원하는 부분을 가져오는 것이다.

목차
1. 인덱싱(Indexing)
2. 슬라이싱(Slicing)

1. 인덱싱(Indexing)

np.배열[원하는 데이터의 위치]
1
2
3
4
5
6
7
import numpy as np
 
= np.arange(7)
 
print(a)
 
print(a[3])
cs
[0 1 2 3 4 5 6]
3

np.arange 함수를 사용하여 7 미만의 원소를 갖는 numpy 배열을 생성했다. 그러고 나서 3번째 원소의 위치가 있는 곳을 인덱싱 했다. 파이썬은 원소의 위치를 0부터 계산하기 때문에 실질적으로 3번째 인덱스에 있는 원소는 4번째에 있는 원소의 위치를 뜻한다. 따라서 3이 출력된 것을 확인할 수 있다.


2. 슬라이싱(Slicing)

np.배열[시작 인덱스, 종료 인덱스, 인덱스 간격]
1
2
3
4
5
6
7
8
9
10
11
import numpy as np
 
= np.arange(7)
 
print('a =', a)
 
print('a[0:7:2] =',a[0:7:2])
 
print('a[0::2] =',a[0::2])
 
print('a[1::2] =',a[1::2])
cs
a = [0 1 2 3 4 5 6]
a[0:7:2] = [0 2 4 6]
a[0::2] = [0 2 4 6]
a[1::2] = [1 3 5]

슬라이싱은 3가지 변수를 입력받는다. 시작 인덱스, 종료 인덱스, 인덱스 간격이다. 주의해야 할 것이 있는데 시작 인덱스는 실제로 포함시키지만 종료 인덱스는 포함시키지 않는다. 종료 인덱스 - 1에 있는 인덱스까지 데이터를 가져온다. 상황에 따라서 생략이 가능하다. 따라서 [시작 인덱스 :: 인덱스 간격], [시작 인덱스:종료 인덱스], [::종료 인덱스] 등의 형태로 이용 가능하다. 콜론(:)이 2개 연속으로 입력된 경우에는 전 구간을 포함하겠다는 뜻이다.

반응형