Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Python
- 알고리즘
- 머신러닝
- pandas
- level 2
- 데이터 분석
- 빅데이터 분석 기사
- Kaggle
- R
- oracle
- sklearn
- 빅분기
- 파이썬
- 코딩테스트
- SQL
- 튜닝
- level 1
- matplotlib
- seaborn
- 실기
- Oracel
- python3
- Numpy
- 카카오
- 오라클
- 프로그래머스
- 실습
Archives
- Today
- Total
라일락 꽃이 피는 날
[Numpy] 슬라이싱 (Slicing) 본문
728x90
1. index 지정 색인
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr[0] # 0
arr[5] # 5
arr[-1] # 9
arr[-10] # 0
arr2d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
arr2d[0, 2] # 3
arr2d[2, 1] # 10
2. 범위 색인 (~이상~미만)
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr[1:] # array([1, 2, 3, 4, 5, 6, 7, 8, 9]) → index 1이상
arr[:5] # array([0, 1, 2, 3, 4]) → index 5미만
arr[1:5] # array([1, 2, 3, 4]) → index 1이상 5미만
arr[:-1] # array([0, 1, 2, 3, 4, 5, 6, 7, 8]) → index –1미만
arr2d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
arr2d[0, :] # array([1, 2, 3, 4]) → 0행(row) 모두
arr2d[:, 2] # array([3, 7, 11]) → 2열(column) 모두
arr2d[:2, :] # array([[1, 2, 3, 4], [5, 6, 7, 8]])
arr2d[:2, 2:] # array([[3, 4], [7, 8]])
3. Fancy 인덱싱
범위가 아닌 특정 index의 집합 값을 선택하여 추출하고 싶을 때 활용한다.
추출할 index들을 반드시 꺾쇠괄호([ ])로 묶는다.
arr = np.array([10, 23, 2, 7, 90, 65, 32, 66, 70])
idx = [1, 3, 5]
arr[idx] # array([23, 7, 65])
arr2d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
arr2d[[0, 1], :] # array([[1, 2, 3, 4], [5, 6, 7, 8]])
arr2d[:, [1, 2, 3]] # array([[2, 3, 4], [6, 7, 8], [10, 11, 12]])
4. Boolean 인덱싱
조건 필터링을 통하여 Boolean 값을 이용한 색인이다.
Boolean 값이 들어있는 집합의 길이와 필터링할 배열의 크기가 같아야 한다.
arr = np.array([1, 2, 3, 4, 5, 6, 7])
myTrueFalse = [True, False, True] # 불가능!!
myTrueFalse = [True, False, True, False, True, False, True]
arr[myTrueFalse] # array([1, 3, 5, 7])
조건 연산자를 활용하여 조건 필터 생성이 가능하다.
arr2d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
arr2d > 2
# array([[False, False, True, True], [True, True, True, True], [True, True, True, True]])
이렇게 생성한 조건 필터를 이용하여 인덱싱할 수 있다.
arr2d[ arr2d > 2 ] # array([3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
arr2d[ arr2d < 5 ] # array([1, 2, 3, 4])
728x90
'데이터 분석 > Python' 카테고리의 다른 글
[Pandas] Series, DataFrame (0) | 2021.04.26 |
---|---|
[Numpy] matrix (행렬) (0) | 2021.04.23 |
[Numpy] sort, argsort (0) | 2021.04.23 |
[Numpy] arange (0) | 2021.04.22 |
[Numpy] ndarray (0) | 2021.04.22 |