일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 의료 ai 대학원 월급
- C# 프로젝트
- 대학원 월급
- 백준
- 자바 프로젝트
- 자바 영화 api
- 파이썬
- 영화 api
- 활성화 함수
- 인공지능
- DCP
- API
- 자바
- 인공지능 깃 버전관리
- 경사하강법
- Dehaze
- 딥러닝 실험 깃 버전관리
- pandas
- 디자인패턴
- python
- 머신러닝
- 대학원 급여
- 통계학
- 로스트아크
- 디자인 패턴
- 딥러닝
- MLP
- 파이썬 경사하강법
- 코딩테스트
- 정규화
- Today
- Total
대학원 일기
Numerical Python - Numpy 본문
방정식 같은 데이터 처리에서 파이썬은 처리 속도가 느린 것을 그나마 해결하기 위해 파이썬 과학 처리 패키지인 Numpy를 쓴다.
Numpy
- Numerical Python
- 파이썬의 고성능 과학 계산용 패키지
- Matrix와 Vector와 같은 Array 연산의 사실상의 표준
Numpy 특징
- 일반 List에 비해 빠르고, 메모리 효율적
- 반복문 없이 데이터 배열에 대한 처리를 지원함
- 선형대수와 관련된 다양한 기능을 제공함
- C, C++, 포트란 등의 언어와 통합 가능
ndarray
Array creation
- numpy는 np.array 함수를 활용하여 배열을 생성함 → ndarray
- numpy는 하나의 데이터 type만 배열에 넣을 수 있음
- List와 가장 큰 차이점, Dynamoc typing not supported
- C의 Array를 사용하여 배열을 생성함
파이썬의 메모리 처리
- 출력 결과처럼 a와 b는 같은 메모리 공간을 공유한다.
- python의 list는 reference 주소를 저장하므로 같은 공간을 공유하게 된다.
a와 b가 같은 메모리 공간을 사용하지 않게 하려면?
- import copy 모듈의 deepcopy()를 사용한다.
numpy로 메모리 저장
- shape : numpy array의 object의 dimension 구성을 반환함
- dtype : nupy array의 데이터 type을 반환함
Array Shape
Array(vector, matrix, tensor)의 크기, 형태 등에 대한 정보
- vector
- matrix
- 3rd order tensor
Array shape - ndim & size
- ndim(number of dimension)
- size: data의 개수
Array dtype
- Ndarray의 single element가 가지는 data type
- 각 element가 차지하는 memory의 크기가 결정됨
- nbytes: ndarray object의 메모리 크기를 반환함
Handling shape
reshape
- Array의 shape의 크기를 변경함 (element의 갯수는 동일)
- Array의 size만 같다면 다차원으로 자유롭게 변형 가능함
flatten
- 다차원 array를 1차원 array로 변환
Indexing & Slicing
indexing
- List와 달리 이차원 배열에서 [0 ,0]과 같은 표기법을 제공함
- Matrix일 경우, 앞은 row 뒤는 column을 의미함
Slicing
- List와 달리 행과 열 부분을 나눠서 slicing이 가능함
- Matrix의 부분 집합을 추출할 때 유용함
- 원하는 부분만 가져올 수 있음
creation function
arange
- array의 범위를 지정하여, 값의 list를 생성하는 명령어
ones, zeros and empty
- zero(0)으로 가득찬 ndarray 생성
- one(1)로 가득찬 ndarrary 생성
- empty: shape만 주어지고 비어있는 ndarray 생성 (memory initialization이 되지 않음)
something_like
- 기존 ndarray의 shape 크기 만큼 1, 0 또는 empty array를 반환
identity
- 단위 행렬(i 행렬)을 생성함
eye
- 대각선이 1인 행렬, k값의 시작 index의 변경이 가능
diag
- 대각 행렬의 값을 추출함
random sampling
- 데이터 분포에 따른 ampling으로 array를 생성
operation functions
sum
- ndarray의 element들 간의 합을 구함, list의 sum 기능과 동일
axis
- 모든 operation function을 실행할 때, 기준이 되는 dimension 축
mean & std
- ndarray의 element들 간의 평균 또는 표준 편차를 반환
concatenate
- Numpy array를 합치는 함수
array operations
Operations b/t arrays
- Numpy는 array간의 기본적인 사칙 연산을 지원함
Element-wise operations
- Array간 shape이 같을 때 일어나는 연산
Dot product
- Matrix의 기본 연산
- dot 함수 사용
transpose(전치 행렬)
- transpose 또는 T attribute 사용
broadcasting
- Shape이 다른 배열 간 연산을 지원하는 기능
- (Scalar–vector) 외에도 (vector–matrix) 간의 연산도 지원
comparisons
All & Any(중요)
- Array의 데이터 전부(and) 또는 일부(or)가 조건에 만족 여부 반환
Comparison operation #1
- Numpy는 배열의 크기가 동일 할 때 element간 비교의 결과를 Boolean type으로 반환하여 돌려줌
Comparison operation #2
np.where
- index 값을 반환할 때 자주 사용
argmax & argmin
- array내 최대값 또는 최소값의 index를 반환함
- axis 기반의 반환
boolean & fancy index
boolean index
- numpy는 배열은 특정 조건에 따른 값을 배열 형태로 추출 할 수 있음
- Comparison operation 함수들도 모두 사용가능
fancy index
- numpy는 array를 index value로 사용해서 값을 추출하는 방법
- Matrix 형태의 데이터도 가능
numpy data i/o
loadtxt & savetxt
- Text type의 데이터를 읽고, 저장하는 기능
numpy object - npy
- Numpy object (pickle) 형태로 데이터를 저장하고 불러옴
- Binary 파일 형태로 저장함
'AI > 인공지능 기초' 카테고리의 다른 글
행렬(Matrix) (0) | 2022.01.26 |
---|---|
벡터(Vector) (0) | 2022.01.26 |
[DL] Deep Learning, Historical Review (0) | 2022.01.07 |
기계 학습(Machine Learning) (0) | 2022.01.02 |
인공지능(Artificial Intelligence)의 분류 (0) | 2021.12.30 |