Python

[네이버부스트코스] Numpy Numerical Python

Jang- 2022. 7. 21. 11:53

* 어떻게 행렬과 매트릭스를 코드로 표현할 것인가?

-> 파이썬 과학 처리 패키지 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으로 반환

np.where

numpy data i/o