본문 바로가기
파이썬/개념정리

[Numpy] 파이썬 Numpy 라이브러리 개념

by 로토마 2022. 2. 25.

Numpy 라이브러리

 

Numerical Python의 줄임말로 C를 기반으로 작성된 라이브러리이다.

파이썬에서 과학적 계산을 위한 핵심 라이브러리로 다차원 배열 객체와 이것들의 계산을 위한 다양한 도구를 제공한다.

 

배열(ndarray): 다차원 배열 객체

- np에서의 각 위치의 자료는 모두 같은 자료형이어야 함

- np.array(컬렉션)을 통해 생성할 수 있다.

- .dtype을 통해 각 데이터 자료형을 알 수 있다.

 

Numpy에서 사용되는 자료형

- 부호가 있는 정수 int

- 부호가 없는 정수 unit

- 실수 float

- bool

- 문자열 string

- object

- unicode 등등...

-> 강제로 타입 지정할 수 있다!!

 

배열과 리스트의 큰 차이점

- 모든 원소가같은 자료형

- 원소의 개수를 바꿀 수 없다

- 파이썬은 자체적으로 배열 자료형을 제공하지 않기 때문에 numpy를 통해서만 사용할 수 있다.

- C로 구현되었기 때문에 파이썬 반복문에 비해 월등히 속도가 빠르며 vertorized operatio을 이용하여 간단한 코드로도 복잡한 선형 대수 연산을 빠르게 수행할 수 있다.

ex) list 로 계산 -> 2.5초, np.array 로 계산 ->  0.000058초 걸림 

 

 

특수 행렬 생성

- np.zeros() :  각각 0으로 채워진 배열 생성

- np.ones() : 각각 1로 채워진 배열 생성

- np.eye() 또는 np.diag() : 대각행렬 생성

- np.empty() : 크기만 지정해 두고 요소는 초기화 되지 않은 배열 생성. 각각 요소는 쓰레기 값으로 채워져 있음.

 

인덱싱과 슬라이싱

- 슬라이싱을 할 경우 복제가 되지 않음, 배열의 주솟값만을 가져오기 때문이다.

-> 따라서!! .copy()를 통해 복사해야한다.

 

유용한 함수와 매소드

flatten() : 다차원 배열을 1차원으로 펼친다.

transpose() : 행과 열을 반환

np.reshape() : 다차원 배열의 shape을 바꾼다.

np.random.random() : 난수 발생

 

Numpy의 통계함수

- np.mean : 평균

- np.var : 분산

- np.std : 표준편차

- np.max : 최댓값

- np.min : 최솟값

- np.median : 중앙값

- np.percentile(x,25) : 하위 25%에 해당하는 수

*  axis를 지정해줘서 행 또는 열 기준으로 적용할 수 있다.