데이터 분석 라이브러리 예제 (feat. 넘파이, 맷플롯립, 판다스)
유튜브 강의
넘파이
왜 넘파이를 쓰는지 ? 행렬 계산에 최적화된 패키지이기때문에
파이썬 자체에서는 리스트끼리의 연산이 불가능함
import numpy as np
a = np.arrange(10)
a #1부터 10까지 리스트 생성
리셋 하는 법
%reset -f
Numpy 예제 1. 배열에 곱 구하기
A = np.array(
[
[10,20,30],
[40,50,60],
[70,80,90]
])
B = np.array(
[
[1],
[2]
[3]
])
B = B.repeat(3,axis=1)
A*B
# broadcasting
A.shape # (3,3)
B.shape # (3,1)
A*B # 했을 때 repeat을 사용하지 않아도 구조에 맞게 곱해줌
fromfunction , setdiffid
random.radint
matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
기본 속성 변경
plt.plot(x,y,'r') # 빨간색 선
plt.plot(x,y,'b') # 파란색 선
plt.plot(x,y,'b--') # 점선
plt.plot(x,y,'bo') # 점
plt.plot(x,y,'b-o',label='data 1') # 선에 포인트 추가
plt.ylable('Y Axis') # y축 제목 설정
plt.xlable('X Axis') # x축 제목 설정
plt.legend() #라벨 설명
hf = plt.figure()
ha = hf.add_axes([0,0,1,1]) # 핸들만들기
ha.plot(x,y) # OOP스타일 플랏
i = 1.2
fig, ax = plt.subplots()
line = ax.plot(x,y)
x_new = np.array([10,11,12])
y_new = np.array({10,10,10])
line.set_data(x_new,i*y_new)
fig
#-----------------------------------------------
파이플랏 예제 1)
x = np.linspace(0,2,100)
y1 = 0.5*x #linear
y2 = 0.5*x**2 # quadratic
y3 = 0.5*x**3 # cubic
oop 플랏 예제 2
색 바꾸기
예제 2 ) decay sine example
t = np.linspace(0,100,1000) # 0부터 100초까지 1000개로 쪼갬
tau = 10 # 속도
y = np.sin(t)*np.exp(-t/tau)
plt.plot(t,y,label='Decay Oscillation Response')
plt.ylabel('y [m]')
plt.xlabel('t [s]')
plt.legend() # 이걸 써야 라벨이 나타남
예제 3) 히스토그램
data = np.random.randn(10000)
plt.hist(data,100,density=True) #density = 확률밀도
# 정규분포
x = np.linspace(-4,4,100)
sigma = 1
mean = 0
nd = ((1/(sigma*np.sqrt(2*np.pi)))*
np.exp(-0.5*((x-mean)/sigma**2))
plt.plot(x,nd,'r',label='표준 정규 분포')
plt.ylabel('PSD')
plt.xlabel('X')
plt.legend()
#랜덤 값이 증가할수록 표준정규분포에 근사함
# 3차원 플랏
x = np.linspace(0,2*np.pi,20)
y = np.linspace(0.2*np.pi,20)
# 예제 4) 파이플랏 애니메이션
# 0부터 11까지 1씩 증가
# 그래프가 증가하는 것이 애니매이션처럼 보임
판다스
import numpy as np
import pandas as pd
----------------------------------------------------------------
df['Score'].sum
df['Score'].max
df['Score'].count
df['Score'].min
df['Score'].std
------------------------------------------------------------------------------
논리연산
plotting
missing data
function
combine data frames
file로 저장,내보내기
df.to_html("test.html") # html로 출력