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를 지정해줘서 행 또는 열 기준으로 적용할 수 있다.
'파이썬 > 개념정리' 카테고리의 다른 글
[Python] 개념 정리 # 2 (feat. 나도 코딩) (0) | 2021.07.21 |
---|---|
[Python] 개념 정리 # 1 (feat. 나도코딩) (1) | 2021.06.26 |