[네이버부스트코스] Numpy Numerical Python
* 어떻게 행렬과 매트릭스를 코드로 표현할 것인가?
-> 파이썬 과학 처리 패키지 numpy
* numpy
- 파이썬의 고성능 과학 계산용 패키지
- matrix와 vector와 같은 array 연산의 사실상의 표준
* numpy 특징
- 일반 list에 비해 빠르고, 메모리 효율적
- 반복문 없이 데이터 배열에 대한 처리를 지원
- 선형대수의 대부분의 개념을 numpy로 구현 가능
* ndarray
- numpy는 np.array 함수를 활용해 배열을 생성
- numpy는 하나의 데이터 type만 배열에 넣을 수 있음
- shape : numpy array의 dimension 구성을 반환함
- dtype : numpy array의 데이터 type을 반환함
* array shape
- scalar : 차원x, 7
- vector : 1차원, [10,10]
- matrix : 2차원, [[10,10],[15,14]]
- 3-tensor : 3차원
- n-tensor : n차원
* array reshape
- reshape : Array의 sahpe의 크기를 변경, element의 갯수는 동일
- .reshape(-1,2) => -1 : size를 기반으로 row 개수 선정
* flatten
- flatten : 다차원 array를 1차원 array로 변환
* indexing for numpy array
- list와 달리 이차원 배열에서 [0,0] 표기법을 제공
- matrix 경우 앞은 row 뒤는 column 의미
* slicing for numpy array
- list와 달리 행과 열 부분을 나눠서 slicing이 가능
- matrix의 부분 집합을 추출할 때 유용
* np.arange
- array의 범위를 지정하여 , 값의 list를 생성하는 명령어
* ones, zeors and empty
- zeros : 0으로 가득찬 ndarray 생성
- ones : 1로 가득찬 ndarray 생성
- empty : shape만 주어지고 비어있는 ndarray 생성
- something_like : 기존의 ndarray의 shape 크기 만큼 1,0 또는 empty array를 반환
* np.identity
- 단위 행렬 (i 행렬)을 생성함
* np.eye
- 대각선이 1인 행렬, k 값으로 시작 index 변경 가능
* np.diag
- 대각 행렬의 값을 추출
* np.random(random sampling)
- 데이터 분포에 따른 sampling으로 array를 생성
* sum, mean, std
- ndarray의 element들 간의 합을 구함, list의 sum기능과 동일
* axis
- 모든 operation function을 실행할때 기준이 되는 dimension 축
* concatenate
- numpy array를 합치는 함수
* operations b/t arrays
- numpy는 array간의 기본적인 사칙연산 지원
- array간 shape이 같을때 일어나는 연산 (element-wise operations)
* Dot product
- Matrix의 기본연산, np.dot 사용
* transpose
- transpose 또는 T attribute 사용
* broadcasting
- shape이 다른 배열간 연산을 지원하는 기능 (펴져나가는 기능)
Comparison all & any
- Array의 데이터 전부(and) 또는 일부(or)가 조건에 만족 여부 반환
- numpy는 배열의 크기가 동일 할 때 element 간 비교의 결과를 Bㅐolean type으로 반환