치악산 복숭아
[엘리스 AI트랙] 13-02-01 Numpy 본문
1. Numpy란?
- 파이썬에서 사용되는 과학 컴퓨팅용 라이브러리
- 파이썬 언어에서 기본으로 지원하지 않는 행렬과 같은 데이터 구조 지원 및 수학/과학 계산 함수 포함
행렬이 왜 필요한가? -> 머신러닝에서 대부분의 데이터는 행렬로 표현되기 때문
2. 행렬 만들기
import numpy as np
A = np.array([[1, 2], [3, 4]])
print(A)
// [[1 2]
// [3 4]]
- 이렇게 만들어진 행렬은 곱셈, 덧셈, 뺄셈이 가능
// 곱셈
print(A * 3)
// [[3 6]
// [9 12]]
// 덧셈
print(A + A)
// [[2 4]
// [6 8]]
// 뺄셈
print(A - A)
// [[0 0]
// [0 0]]
print(A ** 2)
// [[1 4]
// [9 16]]
print(3 ** A)
// [[3 9]
// [27 81]]
print(A * A)
// [[1 4]
// [9 16]]
3. dot 함수
np.dot(x, y)는 x * y와 다르다 !
2차원 * 2차원의 행렬곱으로 예시를 들어보자면 계산방법은
해당 행의 1번째 숫자 * 해당 열의 1번째 숫자 + 해당 행의 2번째 숫자 * 해당 열의 2번째 숫자가 된다
x = np.array([[1, 2], [3, 4]])
y = np.array([[3, 4], [3, 2]])
print(np.dot(x, y))
// [[9 8]
// [21 20]]
print(x * y)
// [[3 8]
// [9 8]]
4. 비교 연산
a = np.array([1, 2, 3, 4])
b = np.array([4, 2, 2, 4])
print(a == b)
// [False, True, False, True]
print(a > b)
// [False, False, True, False]
5. 논리 연산
a = np.array([1, 1, 0, 0], dtype=bool)
b = np.array([1, 0, 1, 0], dtype=bool)
print(np.logical_or(a, b))
// [True, True, True, False]
print(np.logical_and(a, b))
// [True, False, False, False]
6. Reductions
- argmin: 최소값의 인덱스를 반환
- argmax: 최대값의 인덱스를 반환
a = np.array([1, 2, 3, 4, 5])
print(a.min())
// 1
print(a.max())
// 5
print(a.argmin())
// 0
print(a.argmax())
// 4
7. Logical Reductions
- all: Array 내의 모든 값이 True인가?
- any: Array 내의 값이 하나라도 True인가?
a = np.array([True, True, True])
b = np.array([True, True, False])
np.all(a) //True
np.all(b) //False
np.any(a) //True
np.any(b) //True
8. Statistical Reductions
- np.mean(x): 평균값
- np.median(x): 중간값
- np.std(x): 표준편차
x = np.array([1, 2, 3, 1])
print(np.mean(x)) // 1.75
print(np.median(x)) // 1.5
print(np.std(x)) // 0.82915619758884995
'elice > 토끼성장일지' 카테고리의 다른 글
[엘리스 AI트랙] 07-04 Flask 기초 2 (1) | 2021.11.11 |
---|---|
[엘리스 AI트랙] 06-04 SQL 2 (0) | 2021.11.10 |
[엘리스 AI트랙] 07-02-01 ~ 07-02-02 Flask 기초 1 (0) | 2021.11.09 |
[엘리스 AI트랙] React Hook으로 상태관리 하기 (0) | 2021.11.06 |
[엘리스 AI트랙] 05-04 React UI (0) | 2021.11.02 |
Comments