일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- neural network
- 비용함수
- 신경망
- petal to metal
- SVM
- recommender system
- 머신러닝
- Support Vector Machine
- 로지스틱 회귀
- CNN
- Regularization
- 백준
- 인공지능
- 컴퓨터 그래픽스
- Unsupervised learning
- SGD
- 파이썬
- Vision
- 그래픽스
- CPP
- 딥러닝
- pre-trained
- Kaggle
- logistic regression
- 컴퓨터 비전
- C++
- Computer Vision
- cs231n
- 추천 시스템
- OpenGL
- Today
- Total
kwan's note
Numpy(넘파이) 기본연산 활용하기 본문
출처: 부스트코스-머신러닝을 위한 파이썬
수강일시:2021.01.10
이번 강의에서는 파이썬의 과학 계산용 패키지인 numpy 의 여러 특징과 기능, 코드를 작성하는 방법 등을 배웁니다.
numpy는 numerical python으로 - 파이썬의 고성능 과학 계산용 패키지이다 - Matrix와 Vector와 같은 Array 연산의 사실상의 표준 - 한글로 넘파이로 주로 통칭, 일부는 넘피/늄파이라고 부르기도 한다.
numpy를 사용하는 이유는 여러가지가 있지만 대표적으로 ndarray의 효율성 이 있다.
ndarray는 python의 list와 다르게 빠르고 메모리효율적이다.
python의 list는 datatype을 정하지 않고 사용시에 결정한다. 또한 내부 데이터 접근시 주소로 접근하기 때문에 시간이 오래걸린다. 또한 앞서 assignment에서 연습한것과 같이 반복문을 이용해 배열계산을 하는것이 복잡하고 비효율적이다.
ndarray를 이용하면 c ,cpp과같이 array를 사용하면서도 python의 장점을 활용할 수 있다.
reminder-by-kwan.tistory.com/41
numpy array는 c, cpp처럼 배열을 저장한다. 따라서 빠르고 메모리효율적이다.
(다만 데이터의 타입을 미리 선언해주어야함)
Array는 차원을 늘리는 방식으로 벡터, 행렬, 텐서를 표현할 수 있다.
ndim- 차원의 갯수
size- data의 갯수
ex1) np.array(matrixA,int).ndim
ex2) np.array(matrixA,int).size
shape을 이용하여 차원을 변형시킬 수 있다.
reshape(-1,2)처럼 -1을 이용한다면 자동설정( 하나의 row 또는 column을 기준으로 나머지가 설정)된다.
list와 마찬가지로 indexing과 slicing을 사용할 수 있는데 활용 방식이 좀 더 다양하다.
arange-array의 범위를 지정하여 array를생겅한다.
python 의 기본 range와 다르게 floating point로도 표시가 가능하다.
ex) np.arange(0,5,0.1)
ones, zeros - 1또는 0으로 가득찬 array 생성
ones_like , zeros_like는 기존 배열의 shape과 동일한 ones , zeros array 생성
identity: n by n idenetity matrix
ete : n by m identity matrix
ndarray의 축
이외에도 다양한 수학적 계산들을 제공한다.
ex) mean , std, exp, log, sin, cos, atctanh ,,,
concatenate
numpy array를 합칠때 hsatack vstack을 사용할 수 있다.
numpy array는 기본적인 사칙연산을 제공한다.
단 크기가 같을때 기본사칙연산(+ - * /)는 행렬의 같은 위치 성분끼리 사칙연산한다.
따라서 dot product는 A.dot(B)를 사용해야 한다.
ex) matrixA.dot(matrixB)
역행렬은 .transpose() 또는 .T 를 사용한다.
shape이 다른 배열간에도 연산을 제공하는데
이를 broadcasting이라고 한다.
broadcasting 연산은 연산 방식을 알아두지 않으면 헷갈릴 수 있다.
numpy의 비교함수들
all 과 any를 사용하여 boolean 값을 얻을 수 있다.
all : 모두 참이면 true. 이외는 false
any: 하나만 참이면 true. 모두 거짓이면 false
배열의 크기가 동일할 때 > == < 를 이용하여 모든 element에 대한 대소관계를 얻을 수 있다.
또한 index를 얻고 싶을때 where를 사용하여 조건에 해당하는 index를 얻을 수 있고
argmin argmax를 이용하여 min max의 index를 얻을 수 있다.
이로써 numpy의 자주사용하는 일부 연산들에대해 배워보았다.
'ML and AI > Python for ML' 카테고리의 다른 글
데이터 전처리 Data Handling - Data cleansing (0) | 2021.01.16 |
---|---|
Pandas(판다스) 기본연산 활용하기 (1) | 2021.01.16 |
Machine Learning Overview-머신러닝 기본 용어 (0) | 2021.01.10 |
Assignment - Basic Linear Algebra -list만 사용하여 행렬 연산하기 (0) | 2021.01.10 |
pythonic code(파이써닉 코드) (0) | 2021.01.04 |