1. 비교 연산
연산 결과는 항상 불린형(boolean type)을 가진 배열로 추출
- 브로드캐스팅 비교 연산
하나의 스칼라 값과 벡터 간의 비교 연산은 벡터 내 전체 요소에 적용
In | import numpy as np x = np.array([4, 3, 2, 6, 8, 5]) x > 3 |
Out | array([ True, False, False, True, True, True]) |
- 요소별 비교 연산
두 개의 배열 간 배열 구조(shape)가 동일한 경우 같은 위치에 있는 요소들끼리 비교 연산
[1 > 2, 3 > 1, 0 > 7]과 같이 연산이 실시된 후 이를 반환
In | x = np.array([1, 3, 0]) y = np.array([2, 1, 7]) x > y |
Out | array([False, True, False]) |
2. 비교 연산 함수
- all과 any
all 함수: 배열 내부의 모든 값이 참일 때는 True, 하나라도 참이 아닐 경우 False 반환
(and 조건을 전체 요소에 적용)
any 함수: 배열 내부의 값 중 하나라도 참일 때는 True, 모두 거짓일 경우 False 반환
(or 조건을 전체 요소에 적용)
In | x = np.array([4, 6, 7, 3, 2]) (x > 3) |
Out | array([ True, True, True, False, False]) |
In | (x > 3).all() |
Out | False |
In | (x > 3).any() |
Out | True |
- 인덱스 반환 함수
where 함수: 배열이 불린형으로 이루어졌을 때 참인 값들의 인덱스를 반환
In | x = np.array([4, 6, 7, 3, 2]) x > 5 |
Out | array([False, True, True, False, False]) |
In | np.where(x>5) |
Out | (array([1, 2], dtype=int64),) |
True/False 대신 참/거짓인 경우의 값을 지정할 수 있음
In | x = np.array([4, 6, 7, 3, 2]) np.where(x>5 , 10, 20) |
Out | array([20, 10, 10, 20, 20]) |
- 정렬된 값의 인덱스를 반환해주는 함수
argsort: 배열 내 값들을 작은 순서대로 인덱스를 반환
argmax: 배열 내 값들 중 가장 큰 값의 인덱스를 반환
argmin: 배열 내 값들 중 가장 작은 값의 인덱스를 반환
In | x = np.array([4, 6, 7, 3, 2]) np.argsort(x) |
Out | array([4, 3, 0, 1, 2], dtype=int64) |
In | np.argmax(x) |
Out | 2 |
In | np.argmin(x) |
Out | 4 |
3.인덱스를 활용한 데이터 추출
- 불린 인덱스
배열에 있는 값들을 반환할 특정 조건을 불린형의 배열에 넣어서 추출
- 인덱스에 들어가는 배열은 불린형이어야 함
- 불린형 배열과 추출 대상이 되는 배열의 구조가 같아야 함
In | x = np.array([4, 6, 7, 3, 2]) x > 3 |
Out | array([ True, True, True, False, False]) |
In | cond = x > 3 x[cond] |
Out | array([4, 6, 7]) |
In | x.shape |
Out | (5,) |
In | cond.shape |
Out | (5,) |
- 팬시 인덱스
정수형 배열의 값을 사용하여 해당 정수의 인덱스에 위치한 값을 반환
- 인덱스 항목에 넣을 배열은 정수로만 구성되어야 함
- 정수 값의 범위는 대상이 되는 배열이 가지는 인덱스의 범위 내 대상이 되는 배열과 인덱스 배열의 구조가 같을 필요는 없음
In | x = np.array([4, 6, 7, 3, 2]) cond = np.array([1, 2, 0, 2, 2, 2,], int) x[cond] |
Out | array([6, 7, 4, 7, 7, 7]) |
In | x.take(cond) |
Out | array([6, 7, 4, 7, 7, 7]) |
In | x = np.array([[1,4], [9,16]], int) a = np.array([0, 1, 1, 1, 0, 0], int) b = np.array([0, 0, 0, 1, 1, 1], int) x[a,b] |
Out | array([ 1, 9, 9, 16, 4, 4]) |
'Study > AI' 카테고리의 다른 글
House Prices - Advanced Regression Techniques (0) | 2024.04.11 |
---|---|
Titanic Survival Prediction (1) | 2024.04.10 |
넘파이(Numpy) - 배열 연산 (0) | 2023.04.09 |
넘파이(Numpy) - 배열 객체 다루기 (2) | 2023.04.09 |
데이터의 이해 (0) | 2023.04.02 |