본문 바로가기
파이썬/파이썬기본문법

파이썬 numpy 배열 슬라이싱

by flycoding 2023. 12. 6.
반응형

파이썬 numpy 배열 슬라이싱

파이썬에서 슬라이싱은 한 주어진 인덱스에서 다른 주어진 인덱스로 요소를 가져오는 것을 의미한다.
[start:end]와 같이 인덱스 대신 슬라이스를 전달한다.
[start:end:step]과 같이 단계를 정의할 수도 있다.

start가 생략되면 0으로 간주된다.
end가 생략되면 해당 차원에서 고려된 배열 길이를 끝낸다

만약 우리가 step이 생략되면 step은 1로 고려한다.

다음 배열에서 인덱스 1에서 인덱스 5로 요소를 자른다:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])

print("arr : \n", arr)

print('arr[1:5] : ', arr[1:5])

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy 배열 슬라이싱 활용예제

 

 

인덱스 4에서 배열의 끝까지 요소를 자른다:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])

print("arr : \n", arr)

print('arr[4:] : ', arr[4:])

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy 배열 슬라이싱 활용예제

 

 

요소를 처음부터 인덱스 4까지 슬라이스한다(포함되지 않음):

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])

print("arr : \n", arr)

print('arr[:4] : ', arr[:4])

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy 배열 슬라이싱 활용예제

 

 

파이썬 numpy 음수 슬라이싱

빼기 연산자를 사용하여 끝에서 인덱스를 참조한다:

인덱스 -3을 끝에서 끝에서 인덱스 -1로 잘라낸다:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])

print("arr : \n", arr)

print('arr[-3:-1] : ', arr[-3:-1])

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy 배열 음수 슬라이싱 활용예제

 

파이썬 numpy 배열 슬라이싱 단계(step)

step 값을 사용하여 슬라이싱의 단계를 결정한다:

인덱스 1의 다른 모든 요소를 인덱스 5로 되돌린다:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])

print("arr : \n", arr)

print('arr[1:5:2] : ', arr[1:5:2])

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy 배열 슬라이싱 단계(step) 활용 예제

 

전체 배열에서 다른 모든 요소를 반환한다:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])

print("arr : \n", arr)

print('arr[::2] : ', arr[::2])

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy 배열 슬라이싱 단계(step) 활용 예제

 

파이썬 numpy 2차원 배열 슬라이싱

두 번째 요소에서 인덱스 1에서 인덱스 4로 요소를 슬라이스한다(포함되지 않음):

import numpy as np

arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print("arr : \n", arr)

print('arr[1, 1:4] : ', arr[1, 1:4])

arr[1, 1:4]에서 1은 두번째 행을 의미한다. 그래서 [6,7,8,9,10]이 선택이 된다.

다음 [1:4]는 두번째에서 1:4까지의 항목으로 두번째에서 4번째까지 [7,8,9] 항목을 가져온다.

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy 2차원 배열 슬라이싱 활용 예제

 

 

두 요소 모두에서 인덱스 2를 반환한다:

import numpy as np

arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print("arr : \n", arr)

print('arr[0:2,2] : ', arr[0:2,2])

 

arr[0:2, 2] 슬라이스는 먼저 [0,2]의 항목 3과 [1,2] 항목 8 값으로 [3,8]을 화면에 인쇄한다.

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy 2차원 배열 슬라이싱 활용 예제

 

 

슬라이스 인덱스 1에서 인덱스 4(포함되지 않음)까지 두 요소 모두에서 2-D 배열을 반환한다:

import numpy as np

arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print("arr : \n", arr)

print('arr[0:2,1:4] : \n ', arr[0:2,1:4])

arr[0:2, 1:4]는 arr[0, 1:4]의 항목은 [2,3,4]이고 arr[1, 1:4] 항목은 [7 8 9[ 항목이다.

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy 2차원 배열 슬라이싱 활용 예제

 

 

지금까지 파이썬 Numpy 배열 슬라이싱에 대해서 살펴보았다.

1차워, 2차원 배열 슬라이싱에 대해서도 살펴보았다.

꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.

모두 화이팅입니다.!!!

 

출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.

반응형

댓글