인공지능/PYTHON

데이터 분석 라이브러리 예제 (feat. 넘파이, 맷플롯립, 판다스)

bibibig_data 2021. 7. 1. 09:28

유튜브 강의


넘파이

 

왜 넘파이를 쓰는지 ?  행렬 계산에 최적화된 패키지이기때문에

파이썬 자체에서는 리스트끼리의 연산이 불가능함 

 

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

 

색 바꾸기

그리드 위 ha.legend 입력

 

 

예제 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()  # 이걸 써야 라벨이 나타남

 

tau=10
tau=1
tau=100

 

예제 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)

 

3차원 그래프 만들기

 

cmap을 이용해서 색 조정
결과

 

 

 

# 예제 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

 

 

 

------------------------------------------------------------------------------

논리연산

칼럼순서 바꾸기 iloc
조건에 맞는 행의 원하는 열 가져오기
새로운 열 생성
새로운 열에 조건에 맞는거 추가
합격 변수 
오름차순 정렬
내림차순 정렬
자료 엑셀로 내보내기, 불러오기
클래스별로 그룹해서 평균

plotting

점수와 나이 막대그래프

missing data

 

0행과 2행 결측으로

 

결측 행 전체 지우기
결측값을 특정값으로 변경
자동으로 평균값 대치

function

함수 생성
데이터프레임에 함수 적용
apply를 이용해 함수 적용
이름에 n과 r이 포함된 열을 출력해주세요

combine data frames

 

concat으로 df합치기
가로로 df 합치기

file로 저장,내보내기

엑셀로 출력
텍스트로 저장, 구분자 tab
대용량이면 pkl로 저장
엑셀불러오기
text 불러오기

 

pkl 불러오기

df.to_html("test.html")  # html로 출력