목차
배열 자르기 (= 배열 일부 선택 Array Slicing)
1차원 배열 자르기
2차원 배열 자르기
배열 자르기 (= 배열 일부 선택 Array Slicing)
배열의 일부 구간에 위치한 요소만 선택 의미.
cf.
배열 필터링 : 특정 조건에 맞는 요소로 배열 생성.
[구문]
[ start : end : step ]
start
선택. 시작 색인. (포함 O)
※ 없으면, 0부터 시작.
end
선택. 종료 색인. (포함 X )
※ 없으면, 마지막 요소까지.
step
선택. 색인 증가 단계.
※ 없으면, 1씩 증가.
※ -1 경우, 역순 진행.
PS.
[::-1] 의미: 맨 끝에서 시작해 맨 앞까지 -1씩 백스텝 진행.
str [::-1] : 문자열 순서 뒤집기
arr [::-1] : 배열 순서 뒤집기
[반환값]
start (포함 O)부터 end (포함 X )까지 step 간격으로 가져오기.
1차원 배열 자르기
[예제1] start, end 만 있는 경우.
2번째부터 6번째 앞까지 1씩 증가.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[1:5] )
결과값: [2 3 4 5]
[예제2] start 만 있는 경우.
5번째부터 마지막까지 1씩 증가.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[4:] )
결과값: [5 6 7]
[예제3] end 만 있는 경우.
처음부터 5번째 앞까지 1씩 증가.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[:4] )
결과값: [1 2 3 4]
[예제4] 음수 색인 경우.
맨 뒤 3번째부터 맨 뒤 바로 앞까지. 1씩 증가.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[-3:-1] )
결과값: [5 6]
[예제5] start, end, step 다 있는 경우.
2번째부터 6번째 앞까지 2씩 증가.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[1:5:2] )
결과값: [2 4]
[예제6] : step 만 있는 경우.
1번째부터 마지막까지 2씩 증가.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[::2] )
결과값: [1 3 5 7]
2차원 배열 자르기
[예제1] 2번째 차원에서 자르기
2번째 차원 2번째부터 5번째 앞까지 1씩 증가.
import numpy as np
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9 , 10]])
print(arr[1, 1:4] )
결과값: [7 8 9]
[예제2] 1번째 차원에서 자르기.
1번째 차원부터 3번째 차원 앞까지, 각 차원의 3번째 요소 선택.
import numpy as np
arr = np.array([[1, 2, 3 , 4, 5], [6, 7, 8 , 9, 10]])
print(arr[0:2, 2] )
결과값: [3 8]
[예제3] 1번째, 2번째 두 차원 모두에서 자르기.
1번째 차원부터 3번째 차원 앞까지, 각 차원의 2번째 요소부터 5번째 요소 앞까지 1씩 증가.
import numpy as np
arr = np.array([[1, 2, 3 , 4, 5], [6, 7, 8 , 9, 10]])
print(arr[0:2, 1:4] )
결과값:
[[2 3 4]
[7 8 9]]
주소 복사
랜덤 이동