JAMONGPROJECT

[DAY24] Numpy와 pandas 본문

Challenge/FASTCAMPUS 30일 챌린지

[DAY24] Numpy와 pandas

JAMONGPROJECT 2023. 3. 15. 09:02


Numpy와 pandas

 

1 numpy에 대해

 

numpy

 

C를 기반으로 작성된 라이브러리로 Numerical Python의 줄임말이다.
파이썬에서 과학적 계산을 위한 핵심 라이브러리로 다차원 배열 객체와 이들의 계산을 위한 다양한 도구들을 제공한다.

import numpy as np와 같은 방식으로 많이 호출한다.

 

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


- np에서의 각 위치의 자료는 모두 같은 자료형이어야 한다.
- np.array(컬렉션) 을 통해 생성할 수 있다. 
- .dtype을 통해 각 데이터의 자료형을 알 수 있다.

 

# 배열과 리스트의 큰 차이점.


- 모든 원소가 같은 자료형이다.
- 원소의 개수를 바꿀 수 없다.
- 파이썬은 자체적으로 배열 자료형을 제공하지 않기 때문에 numpy를 통해서만 사용할 수 있다.
- C로 구현되었기 때문에 파이썬 반복문에 비해 월등히 속도가 빠르며 vectorized operatio을 이용하여 간단한
코드로도 복잡한 선형 대수 연산을 빠르게 수행할 수 있다.
- Numpy 배열은 다차원으로 구성될 수 있고 .shape를 통해 몇 차원인지, 각 차원은 몇 개의 원소로 구성되어 있는지
알 수 있다.

 

 

Numpy의 자료형

- 부호가 있는 정수 int(8, 16, 32, 64)
- 부호가 없는 정수 uint(8 ,16, 32, 54)
- 실수 float(16, 32, 64, 128)
- bool
- 문자열 string
- 파이썬 오프젝트 object
- 유니코드 unicode_
등등

np.array([1,2,3,4], dtype=np.float64) 와 같은 방식으로 자료형을 강제로 지정해줄 수 있다.

 

 

특수 행렬 생성

np.zeros() : 각각 0으로 채워진 배열 생성
np.ones() : 각각 1로 채워진 배열 생성
np.eye() 또는 np.diag() : 대각행렬을 생성
np.empty() : 크기만 지정해 두고 요소는 초기화 되지 않은 배열 생성. 각각의 요소는 가비지 값이 채워져 있음.

 

 

인덱싱과 슬라이싱

 

A = np.empty((10,5))
for I in range(10):
  A[i] = i


B = A[[1,3,5,7]] : A의 1,3,5,7행만 선택
C = A[[0,1],[3,4]] : 0행 3열과 1행 4열에 해당하는 요소만 선택

 

슬라이싱을 할 경우 복제가 되지 않음. 이는 그 배열의 주소값만을 가져오기 때문.
따라서, .copy()를 통해 복사해야함.

 

 

요소별 조건판별

== : 특정 조건을 만족하는 배열의 모든 요소 선별
!= : 특정 조건을 만족하지 않는 배열의 모든 요소 선별
& (and): 여러 조건을 사용할 경우 &을 이용하여 선별
| (or) : 위와 같음
예시)
A= np.array([0,1,2,3])
print(A == 0)
print(A[A==0])

 

유용한 함수와 메소드

 

flatten() : 다차원 배열을 1차원으로 펼친다.
transpose() : 행과 열을 변환
np.reshape() : 다차원 배열의 shape을 바꾼다.
np.random.random() : 난수를 발생시킨다. (random.random과 비슷하나 이는 numpy array를 반환.)

 

a=np.array([[1,2],[3,4]])
b=np.array([[5,6],[7,8]])

np.hstack([a,b])
=> array([[1, 2, 5, 6], [3, 4, 7, 8]])
np.vstack([a,b])
=> array([[1, 2], [3, 4], [5, 6], [7, 8]])

 

 

Numpy의 통계함수

 

np.mean: 평균
np.var: 분산
np.std: 표준편차
np.max: 최댓값
np.min: 최솟값
np.median: 중앙값
np.percentile(x, 25) : 하위 25%에 해당하는 수


* axis를 지정해줘서 행 또는 열을 기준으로 통계함수를 적용할 수 있음.

 

 

Numpy의 수학적 함수들

 

np.exp: 지수함수
np.sin, np.cos, np.tan: 삼각함수, 단위는 radian
np.abs: 절댓값
np.sqrt: 제곱근
np.square: 제곱
np.sign: 부호
np.isnan : NaN(Not a Number) 포함 여부 확인
np.unique : 중복제거
np.sort : 정렬


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

 


 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

http://bit.ly/3Y34pE0

 

#패스트캠퍼스 #패캠챌린지 #수강료0원챌린지 #환급챌린지 #직장인인강 #직장인자기계발
#패캠인강후기 #패스트캠퍼스후기 #오공완

#한번에끝내는컴퓨터공학전공필수&인공지능심화초격차패키지Online

'Challenge > FASTCAMPUS 30일 챌린지' 카테고리의 다른 글

[DAY26] Rest API와 Flask  (0) 2023.03.17
[DAY25] numpy와 pandas  (0) 2023.03.16
[DAY23] DB연동과 정규식  (0) 2023.03.14
[DAY22] DB연동과 정규식  (0) 2023.03.13
[DAY21] DB연동과 정규식  (0) 2023.03.12
Comments