728x90
반응형
SMALL
딥러닝을 위한 파이썬의 대표적 라이브러리
NumPy | Numerical Python : 선형대수, 난수 , n -array 사용 가능 |
Pandas | 데이터 조작, 분석을 위한 광범휘한 도구 제공 |
Matplotlib | 데이터 시각화 및 시각화를 통한 데이터 탐색 가능 |
scikit-learn | NumPy와 Pandas 등과 원활하게 연동되는 데이터 과학 관련 모듈 |
TensorFlow (Keras) |
딜버닝 모델 구축 및 학습 가능 |
PyTorch | 딥러닝 프레임워크 |
NumPy란?
행렬이나 대규모의 배열을 쉽게 처리할 수 있도록 도와주는 파이썬 라이브러리
- 백터, 행렬의 형태로 데이터 표현 및 연산을 한다.
* numPy 를 이용하여 데이터를 행렬 또는 벡터의 형식으로 변환 - 웹사이트
www.numpy.org - 발표일
1995(Numeric), 2006년 - 설치방법
1. cmd에서 pip install numpy 로 설치
2. 구글 Colab 사용
Numpy 문법
- 딥러닝은 데이터 학습을 통하여 예측이 가능, 학습을 위한 훈련 데이터는 2,3차원 행렬의 형태를 가진다.
- 열 : 하나의 특징 ( 속성 )
- 행 : 하나의 훈련 데이터 - 넘파의 다차원 배열 데이터 구조 : ndarray(n-dimensional array)
- 넘파이를 이용하여 행렬을 통한 데이터 접근 및 연산 가능
배열생성
자료형 | 배열 생성 시 기본 자료형은 numpy.float64이며 명시적으로 numpy.int32, numpy.unicode 등 직접 지정 후 생성 가능 |
생성 방법 | 배열객체 = numpy.array([]) - .array : 생성자 함수 - ([]) : 파이썬 리스트 |
배열객체 = numpay.arange(시작값, 종료값, 간격) - 시작값 ~ 종료값 -1 까지 간격을 지정하여 생성 ex ) arange(시작값, 종료값) : 시작값 ~ 종료값 -1 까지 1씩 증가하며 생성 |
|
배열 객체 = numpy.zeros((행의 갯수, 열의갯수)) -지정된 개수만큼 0을 채운 행렬 생성 |
|
배열객체 = numpy.ones((행의 갯수, 열의 갯수)) -지정된 개수만큼 1을 채운 행렬 생성 |
|
배열객체 = numpy.eye(n) - 0행 0열 부터 시작하여 대각선으로 n개 만큼 1, 나머지는 0을 채운 행렬 생성 |
|
배열객체 = numpy.linespace(시작값, 종료값, 개수) - 시작값 ~ 종료값의 수들이 n개 균일하게 생성 |
|
배열 다루기 | 배열정렬 - numpy.sort |
배열 합치기 - numpy.concatenate((행렬1, 행렬2),axis = 0 또는 1) - axis = 0일경우 : 세로로 합치기 - axis = 1일경우 : 가로로 합치기 |
|
형상 확인 : .shape | |
차원확인 : .ndim | |
형상 변환 : .reshape(행, 열) -> 3행 1열의 numpy 데이터를 1행 3열로 변환 등 행과 열을 변환 |
인덱싱과 슬라이싱
1차원
배열객체 | numpy.array([ ... ]) |
배열객체 [ a : b ] | a~ab-1 번째 까지 슬라이싱 배열객체 [:b] 0~b-1번째까지 슬라이싱 시작 인덱스나 종료 인덱스는 생략가능 |
변수 = 배열객체 [비교연산] | tmp = np.array([1,2,3,4,5]) tmp2 = tmp > 3 print(tmp2) print(tmp[tmp2]) |
2차원
배열객체 | numpy.array( [ [ ] , [ ] ... ) |
배열객체 [ a, b ] | a행 b열값 검색 |
배열객체 [ n1 : n2 , n3 : n4 ] | n1 ~ ( n2 -1 ) 행, n3 ~ ( n4 - 1 ) 열 검색 |
산술연산
+, -, *, / (사칙연산) | 각 행렬의 동일한 위치의 원소와 연산 | import numpy as np a=np.array([1,2,3]) b=np.array([1,2,3]) a+b 결과 : array([2, 4, 6] |
행렬 곱 |
⦁ 주의 : 앞 행렬의 행의 개수 == 연산되는 행렬의 열의 개수 ⦁ 머신러닝의 이미지 프로세싱에서 많이 사용 |
numpy.dot(행렬1, 행렬2) numpy.matmul(행렬1, 행렬2) |
|
||
1차원 벡터들만 포함된 행렬곱 | a=np.array([1,2,3]) b=np.array([1,2,3]) np.dot(a,b) #[14] |
|
행렬과 스칼라의 행렬곱 | a=np.array([1,2,3]) b=2 np.dot(a,b) # [2,4,6] |
|
행렬 ×벡터 | a = np.array([[1, 3], [2, 4]]) #2*2 b = np.array([2, 5]) #벡터 np.dot(a, b) #[17, 24] |
|
벡터 ×행렬 | a = np.array([[1, 3], [2, 4]]) #2*2 b = np.array([2, 5]) #1*2 np.dot(b, a) # [12, 26] |
|
브로드 캐스팅연산 | 행렬 간 연산 시 연산할 데이터의 수가 부족할 경우 : 브로드 캐스팅을 통하여 데이터를 행 단위로 반복하여 노출 후 연산 | import numpy as np i=np.array([[1,2],[3,4]]) j=np.array([[1,2]]) print(i) [[1 2] [3 4]] print(j) [[1 2]] print(i+j) [[2 4] [4 6]] |
전치행렬 | 원본 행렬의 행과 열을 전치 (3*2->2*3) | import numpy as np a=np.array([[1,2,3],[3,4,5]]) print(a.T) |
iterator | 1. nditer(): 행렬의 모든 원소 방문하기 위하여 사용 ▶ 결과는 읽어들인 원소들의 첫 번째 값 ◻ while 문을 이용하여 첫 번째 원소의 값부터 하나씩 접근 가능 ◻ 행 우선으로 원소의 값 접근 2. iternext()를 통해 원소의 처음부터 끝까지 순차적으로 읽음 |
numpy.nditer( 행렬 , flags=[옵션] , op_flags=[옵션]) flags=['multi_index‘] : array요소의 인덱스 값을 구함 op_flags=['readwrite'] : 읽기, 쓰기 모두 가능한 상태 |
파일 데이터 읽기 | numpy.loadtxt(“파일명”, delimiter=‘분리자’) | tmp=np.loadtxt('1.txt', delimiter=',', dtype=np.int32) >>> tmp array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) |
기타 함수 | ⦁ .random.rand(n) ▶ 0~1의 소수 n개 생성 ⦁ .random.rand(a,b) ▶ 0~1의 소수를 a행 b열의 크기로 생성 ⦁ .sum(행렬), min(행렬), max(행렬) ⦁ .exp(행렬) ⦁ .log(행렬) ⦁ .argmax or .argmin(행렬, axis=0 or 1) ▶ 행렬의 열 또는 행 단위 최대값의 인덱스 리턴 ▶ axix= 0 : 열 기준 ▶ axix= 1 : 행 기준 |
728x90
반응형
LIST
'인공지능 > 머신러닝' 카테고리의 다른 글
8. 데이터 결측치 시각화 - 데이터 결측치 시각화 (0) | 2023.09.25 |
---|---|
6. 딥러닝을 위한 프레임 워크 - 파이토치(PyTorch) (0) | 2023.09.19 |
5. 데이터 시각화를 위한 matplotlib (0) | 2023.09.19 |
3. 머신러닝을 위한 판다스(Pandas) (0) | 2023.09.05 |
1. 인공지능과 머신러닝 개념 (0) | 2023.08.29 |
댓글