파이썬 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]) |
위의 코드를 실행하면 아래 그림과 같다.
인덱스 4에서 배열의 끝까지 요소를 자른다:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) print("arr : \n", arr) print('arr[4:] : ', arr[4:]) |
위의 코드를 실행하면 아래 그림과 같다.
요소를 처음부터 인덱스 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 음수 슬라이싱
빼기 연산자를 사용하여 끝에서 인덱스를 참조한다:
인덱스 -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 배열 슬라이싱 단계(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]) |
위의 코드를 실행하면 아래 그림과 같다.
전체 배열에서 다른 모든 요소를 반환한다:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) print("arr : \n", arr) print('arr[::2] : ', arr[::2]) |
위의 코드를 실행하면 아래 그림과 같다.
파이썬 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] 항목을 가져온다.
위의 코드를 실행하면 아래 그림과 같다.
두 요소 모두에서 인덱스 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]을 화면에 인쇄한다.
위의 코드를 실행하면 아래 그림과 같다.
슬라이스 인덱스 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 배열 슬라이싱에 대해서 살펴보았다.
1차워, 2차원 배열 슬라이싱에 대해서도 살펴보았다.
꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.
모두 화이팅입니다.!!!
출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.
'파이썬 > 파이썬기본문법' 카테고리의 다른 글
파이썬 Numpy 배열 복사 vs 보기(Copy vs View) (1) | 2023.12.08 |
---|---|
파이썬 Numpy 데이터 유형(Data Type) (1) | 2023.12.07 |
파이썬 numpy 배열 인덱스 (0) | 2023.12.05 |
파이썬 Numpy 배열 생성 (1) | 2023.12.04 |
파이썬 Numpy 시작하기 (0) | 2023.12.03 |
댓글