슬라이싱은
연속된 인덱스상의 ndarray를 추출하는 방식이다.
' : ' (colon) 기호를 사이에
시작 인덱스와 종료 인덱스를 표시하면
시작 인덱스에서 종료 인덱스 -1 위치에 있는 데이터 ndarray 가 추출된다.
예를 들어,
1 : 5 라고 하면 시작 인덱스 1과 종료 인덱스 4까지에 해당하는 ndarray를 뜻한다.
#import numpy as np array1 = np.arange(start = 1, stop = 10) array2 = array1[0:3] print(array2) print(type(array2))
[output]
[1 2 3] <class 'numpy.ndarray'>
아래와 같이 표현도 가능하다.
array1 = np.arange(start = 1, stop = 10) array3 = array1[0 : 3] print(array3) array4 = array1[ : 3] print(array4) array5 = array1[3 : ] print(array5) array6 = array1[ : ] print(array6)
[output]
[1 2 3] [1 2 3] [4 5 6 7 8 9] [1 2 3 4 5 6 7 8 9]
1. array[0 : 3] -> 인덱스 위치 0에서 인덱스 위치 3까지의 배열을 가지고 온다.
2. array[ : 3] -> 인덱스 위치 0에서 인덱스 위치 3까지의 배열을 가지고 온다.
3. array[3 : ] -> 인덱스 위치 3에서 인덱스 위치 끝 (-1) 까지의 배열을 가지고 온다.
4. array[ : ] -> 인덱스 맨처음/맨마지막 인덱스 위치 까지의 배열을 가지고 온다.
-------------------------------------------------------------array[ : ]-----------------------------------------------------------> | ||||||||
--------------array[ : 3 ]---------------> | --------------------------------------array[ 3 : ]----------------------------------> | |||||||
-------------array[ 0 : 3 ]-------------> | ||||||||
index=0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
array
2차원 ndarray에서 슬라이싱을 적용해보겠다.
2차원 슬라이싱에 다른점은
' , ' (comma) 로 로우와 컬럼 인덱싱을 지칭해준다.
array1d = np.arange(start =1, stop = 10) array2d = array1d.reshape(3,3) print('array2d:\n', array2d) print('array2d[0:2, 0:2] \n', array2d[0:2, 0:2]) print('array2d[1:3, 0:3] \n', array2d[1:3, 0:3]) print('array2d[1:3, :] \n', array2d[1:3, :]) print('array2d[:, :] \n', array2d[: , :]) print('array2d[:2, 1:] \n', array2d[:2, 1:]) print('array2d[:2, 0] \n', array2d[:2, 0])
[output]
array2d: [[1 2 3] [4 5 6] [7 8 9]] array2d[0:2, 0:2] [[1 2] [4 5]] array2d[1:3, 0:3] [[4 5 6] [7 8 9]] array2d[1:3, :] [[4 5 6] [7 8 9]] array2d[:, :] [[1 2 3] [4 5 6] [7 8 9]] array2d[:2, 1:] [[2 3] [5 6]] array2d[:2, 0] [1 4]
참고할 점은,
2차원 ndarray에서 뒤에 오는 인덱스를 없애면 1차원 ndarray를 (axis =0) 을 반환한다.
array2d[ 0 ] 과 같이 2차원에서 뒤에 오는 인덱스를 없애면 로우축 (axis =0) 의 첫번째 로우 ndarray를 반환한다.
Reference
1. https://www.oreilly.com/library/view/python-for-data/9781449323592/ch04.html
Python for Data Analysis
Chapter 4. NumPy Basics: Arrays and Vectorized Computation NumPy, short for Numerical Python, is the fundamental package required for high performance scientific computing and data analysis. It is the foundation … - Selection from Python for Data Analy
www.oreilly.com
2. 파이썬 머신러닝 완벽가이드 위키북스 데이터 사이언스 시리즈
'Python' 카테고리의 다른 글
Numpy.sort, argsort (0) | 2022.01.09 |
---|---|
Numpy Fancy Indexing, Boolean Indexing (0) | 2022.01.06 |
python 으로 csv 파일 합치기 (0) | 2022.01.04 |
Numpy 인덱싱 (indexing) (0) | 2022.01.03 |
Numpy.reshape ( -1 ) (0) | 2022.01.02 |