문과생 대상 파이썬을 활용한 데이터 분석 강의

83
http://onoffmix.com/event/44315

Upload: kwangyoun-jung

Post on 21-Jul-2015

339 views

Category:

Technology


8 download

TRANSCRIPT

Page 1: 문과생 대상 파이썬을 활용한 데이터 분석 강의

http://onoffmix.com/event/44315

Page 2: 문과생 대상 파이썬을 활용한 데이터 분석 강의

데이터분석을위한 Python

2014/04/16 정광윤

metaacademy.kr

Page 3: 문과생 대상 파이썬을 활용한 데이터 분석 강의

차례

1. Programming

2. About Python

3. Python을이용한데이터분석

Page 4: 문과생 대상 파이썬을 활용한 데이터 분석 강의

차례

1. Programming

2. About Python

3. Python을이용한데이터분석

Page 7: 문과생 대상 파이썬을 활용한 데이터 분석 강의

https://www.imaso.co.kr/news/article_view.php?article_idx=20141103112843

빠르면 2015년부터소프트웨어교육시작...

이창윤미래부인재정책과장.. “코딩이아니라컴퓨팅적사고교육이목표”

Page 8: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Everybody in this country should learn how

to program a computer because it teaches

you how to think.

Steve Jobs

Page 9: 문과생 대상 파이썬을 활용한 데이터 분석 강의

프로그래밍:

수학능력만생각하기쉽지만,

언어적사고가우선된다.

Page 10: 문과생 대상 파이썬을 활용한 데이터 분석 강의

‘scratch’ educational programming language for children by MIT

Page 11: 문과생 대상 파이썬을 활용한 데이터 분석 강의
Page 12: 문과생 대상 파이썬을 활용한 데이터 분석 강의

프로그래밍:

어떤작업을수행하기위해컴퓨터에게지시하는방법

Page 13: 문과생 대상 파이썬을 활용한 데이터 분석 강의

프로그래밍:

소프트웨어는인간을위한것, 컴퓨터를이용해사람을돕는기술

Vanessa by CEO of ‘Girl Develop IT’

Page 14: 문과생 대상 파이썬을 활용한 데이터 분석 강의

프로그래밍:

여러분들이의사가되던연예인이되던먼저프로그래밍을배워야합니다.

code.org

Page 15: 문과생 대상 파이썬을 활용한 데이터 분석 강의

왜냐면

Page 16: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Everybody in this country should learn how

to program a computer because it teaches

you how to think.

Steve Jobs

Page 17: 문과생 대상 파이썬을 활용한 데이터 분석 강의

차례

1. Programming

2. Python

3. Python을이용한다양한활용영역4. Python을이용한데이터분석

Page 18: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Why Python?

Page 19: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Why Python?

1. 인간지향적인간단한문법2. 가장대중화된언어3. 다양한라이브러리, 넓은활용범위

Reference: http://www.slideshare.net/blissray/w-37771905

Page 20: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Java vs. Python

for(int x = 0; x < 11; x++) {

System.out.print("x : " + x );

System.out.print("\n");

}

for x in range(10):

print “x : “, x

Page 21: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Why Python?

1. 인간지향적인간단한문법2. 가장대중화된언어3. 다양한라이브러리, 넓은활용범위

Page 22: 문과생 대상 파이썬을 활용한 데이터 분석 강의
Page 23: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Python: Increase 0.9%

Javascript: Increase 1.3%

Page 24: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Why Python?

1. 인간지향적인간단한문법2. 가장대중화된언어3. 다양한라이브러리, 넓은활용범위

Page 25: 문과생 대상 파이썬을 활용한 데이터 분석 강의

다양한라이브러리, 넓은활용범위

https://pypi.python.org/pypi?%3Aaction=browse

Page 26: 문과생 대상 파이썬을 활용한 데이터 분석 강의

다양한라이브러리, 넓은활용범위

https://pypi.python.org/pypi?%3Aaction=browse

Page 27: 문과생 대상 파이썬을 활용한 데이터 분석 강의

1. 웹사이트2. 데이터분석3. 머신러닝

4. 게임5. 웹해킹

다양한라이브러리, 넓은활용범위

Page 28: 문과생 대상 파이썬을 활용한 데이터 분석 강의

다양한라이브러리, 넓은활용범위

http://www.scari.net

Page 29: 문과생 대상 파이썬을 활용한 데이터 분석 강의

다양한라이브러리, 넓은활용범위

Python으로만들어진웹서비스

Page 30: 문과생 대상 파이썬을 활용한 데이터 분석 강의

무슨언어를써야할지모르겠으면 Python을쓰면된다.

https://mirror.enha.kr/wiki/Python#s-6

다양한라이브러리, 넓은활용범위

Page 31: 문과생 대상 파이썬을 활용한 데이터 분석 강의

차례

1. Programming

2. About Python

3. Python을이용한데이터분석

Page 32: 문과생 대상 파이썬을 활용한 데이터 분석 강의

거두절미하고맛부터봅시다.

Page 33: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Python 맛보기

Page 34: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Python 맛보기

Page 35: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Python 맛보기

def welcome(name):

for k in range(10):

if k%2 == 0:

print "%d: Hello, %s. "%(k+1, name)

else:

print "{seq}: 환영합니다! {name}"

.format(seq=k+1, name=name)

Page 36: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Python 맛보기

advanced

1. 값을입력하지않았다면다시입력받기

Page 37: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Python 맛보기

advanced

1. 값을입력하지않았다면다시입력받기a. 만약입력받은값이빈값이면다시입력받아라.

b. 입력받은값의길이가 1보다작으면 (즉, 없다면) 계속입력받아라.

Page 38: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Python 맛보기

advanced

1. 값을입력하지않았다면다시입력받기a. 만약입력받은값이빈값이면다시입력받아라.

b. 입력받은값의길이가 1보다작으면 (즉, 없다면) 계속입력받아라.

Page 39: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Python 맛보기 source

welcome.py

https://gist.github.com/initialkommit/590e16dd89937e20b539

Page 40: 문과생 대상 파이썬을 활용한 데이터 분석 강의

이제는자세히봅시다.

Page 41: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Python Basic

1. Object-Oriented Programming

2. 기초문법 (변수, 연산)

3. 기초문법 (제어문, 반복문)

4. Data Type

Page 42: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Python Basic

1. Object-Oriented Programming

2. 기초문법 (변수, 연산)

3. 기초문법 (제어문, 반복문)

4. Data Type

Page 43: 문과생 대상 파이썬을 활용한 데이터 분석 강의

객체(Object) or 인스턴스(Instance)

Page 44: 문과생 대상 파이썬을 활용한 데이터 분석 강의

클래스(Class)

Page 45: 문과생 대상 파이썬을 활용한 데이터 분석 강의

프로그래머

http://m.ohmynews.com/NWS_Web/Mobile/at_pg.aspx?CNTN_CD=A0000381710, 비하목적 없음

Page 46: 문과생 대상 파이썬을 활용한 데이터 분석 강의

객체속성

● 이름: 황금잉어빵

● 재료: 팥

● 크기: 중간

● 가격: 300원

Page 47: 문과생 대상 파이썬을 활용한 데이터 분석 강의

객체함수

● 말하기

● 숨쉬기

Hello?

Page 48: 문과생 대상 파이썬을 활용한 데이터 분석 강의

여러개객체생성

Hello?Hello?Hello?

Hello?Hello?

Hello?

Hello?

Hello?

Hell

o?

Page 49: 문과생 대상 파이썬을 활용한 데이터 분석 강의

객체속성변경

● 크기속성을 '중간'에서 '

작음' 으로변경해서객체를만듬

Page 50: 문과생 대상 파이썬을 활용한 데이터 분석 강의

객체속성변경

● 입모양속성을 '닫음'에서'열림'으로변경해서객체생성

Page 51: 문과생 대상 파이썬을 활용한 데이터 분석 강의

객체속성변경

● 내용물속성을 '팥'에서'고구마', '커스타드' 등으로바꿔서객체생성

Page 52: 문과생 대상 파이썬을 활용한 데이터 분석 강의

파이썬은객체지향프로그래밍이다.

1. 파이썬의모든것는객체(object)다.

2. 그객체에는a. 속성이있다. (상태값)

b. 함수가있다. (행동)

3. 숫자도객체다.

4. 문자도객체다.

5. 따라서숫자와문자에도속성과함수가있다.

Page 53: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Python Basic

1. Object-Oriented Programming

2. 기초문법 (변수, 연산)

3. 기초문법 (제어문, 반복문)

4. Data Type

Page 54: 문과생 대상 파이썬을 활용한 데이터 분석 강의

기초문법을배우기전에Python부터실행해봅시다.

Page 55: 문과생 대상 파이썬을 활용한 데이터 분석 강의

실행방법

1. 윈도우사용자a. 시작 > Python27 > IDLE

b. 혹은시작 > 실행 > cmd > python

2. 맥/리눅스사용자a. Terminal > pythonon

Page 56: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Command Line Interface(CLI)

● 앞으로는화려한GUI(Graphic User

Interface) 보다는 MS-DOS

와같은 Command 입력방식에익숙해질필요가있습니다.

o 빠르기때문에

o 간편하기때문에

o 편하기때문에

Page 57: 문과생 대상 파이썬을 활용한 데이터 분석 강의

다시돌아가서,

앞으로나오는것은실습하면서

공부하겠습니다.

Page 58: 문과생 대상 파이썬을 활용한 데이터 분석 강의

변수 (Variable)

● x = 1 + 2

o 수학 x는 1 + 2의값인 3이다.

o 프로그래밍 1 + 2의값인 3을 x라는변수에할당한다.

x라는변수에는숫자형태의데이터 3 이라는값을가리키고있는주소를가지고있다.

● 변수o 특정데이터를담는그릇o 특정데이터는특정장소에저장되고, 변수는그장소의주소값

을가지고있다.

Page 59: 문과생 대상 파이썬을 활용한 데이터 분석 강의

연산

● 산술연산o 연산자(Operator)

+

-

*

/

● 비교연산o <

o <=

o >

o >=

o ==

o !=

● 논리연산

o or

o and

o not

Page 60: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Python Basic

1. Object-Oriented Programming

2. 기초문법 (변수, 연산)

3. 기초문법 (제어문, 반복문)

4. Data Type

Page 61: 문과생 대상 파이썬을 활용한 데이터 분석 강의

if 조건문

if condition1:

condition1이참(true)일때

elif condition2:

condition1이거짓(false)이고, condition2가참일때

elif conditionN:

….

else:

앞의조건이모두거짓일때

Page 62: 문과생 대상 파이썬을 활용한 데이터 분석 강의

for 반복문

for item in items:

실행문1

실행문2

● items 중에서(in)에서하나의 item에대해아래실행문실행하는데실행문이끝나면다음 item에대해실행한다.

● 즉, items 의값을하나씩꺼내 item 에 assign 하며모든 item 에대해반복

● continue

o 이번수행을하지않고다음으로이동한다.

● break

o loop를빠져나간다.

Page 63: 문과생 대상 파이썬을 활용한 데이터 분석 강의

while 반복문

while condition:

실행문1

실행문2

.

● condition이참인동안(while) 아래실행문을계속실행한다.

● 즉, 참이아닌경우에는아래실행문을실행하지않고빠져나온다.

ex) while len(name) < 1:

name = raw_input(“Please enter your name: ”)

Page 64: 문과생 대상 파이썬을 활용한 데이터 분석 강의

다른언어에는없는것

while condition:

실행문1

실행문2

.

for item in items:

실행문2

실행문2

.

if condition1:

실행문1

elif condition2:

실행문2

else:

실행문3

1. 처음과끝(블락/block)이없다.

a. { (블락의첫중괄호) -> : (콜론)을사용b. 블락 -> 처음과끝의표시를들여쓰기(Indentation)으로표현

i. Indentation이틀리면 Error

ii. 보통은스페이스바 4칸

Page 65: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Python Basic

1. Object-Oriented Programming

2. 기초문법 (변수, 연산)

3. 기초문법 (제어문, 반복문)

4. Data Type

Page 66: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Data Type

● Python는변수를선언할때 Data Type을따로표시하지않는다.

● Javascript

○ var a=1;

○ var b=2;

○ var z=a+b;

● python

○ a=1

○ b=2

○ z=a+b

Page 67: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Data Type

Page 68: 문과생 대상 파이썬을 활용한 데이터 분석 강의

순서열 - str1. 양의정수로색인되는순서있는객체들의모음

2. 모든순서열에적용되는공통연산이나함수존재

Name Example Note

upper / lower “hi”.upper() / “HI”.lower()

count “apple”.count(“p”)

find / rfind / index “Well done”.find(“d”) / “Well done”.index(“d”) 어떤차이가있을까요?

join "-".join(“1234”)

strip / lstrip / rstrip “ eh? “.strip()

replace “pithon”.replace(“i”, “y”)

split / rsplit “Life is beautiful”.split()

Page 69: 문과생 대상 파이썬을 활용한 데이터 분석 강의

list & tuple

list tuple

people = [”Justin”, u“수지”, u“허지웅”] people = (”Justin”, u“수지”, u“허지웅”)

수정/추가/삭제가능 수정/추가/삭제불가능

list 안의 list 가능 (nested-list) tuple 안의 tuple 가능 (nested-tuple)

index & slice

Page 70: 문과생 대상 파이썬을 활용한 데이터 분석 강의

list & tuple

함수

Name Example Note

append [1, 2, 3].append(4)

sort [‘bravo’, ‘alpha’, ‘charlie’].sort()

reverse [1,2,3].reverse()

index [‘smart’, ‘phone’].index(‘smart’) index 값알아내내기

insert [1,2,3].insert(0, 100)

remove [1,2,3].remove(3)

pop [1,2,3].pop(1) index에대한값출력후제거

Page 71: 문과생 대상 파이썬을 활용한 데이터 분석 강의

사전형

d = {‘name’:’kevin’, ‘final’:84, ‘report’:90}

Name Example Note

keys d.keys() [‘name’, ‘final’, ‘report’]

values d.values() [‘kevin’, 84, 90]

items d.items() [(‘name’, ‘kevin’), (‘final’, 84), (‘report’, 90)]

clear d.clear() 모든항목을제거

get d.get(‘name’) ‘kevin’

in ‘name’ in d key가있는존재하는지검사 (반환: T/F)

update d.update({‘mid’:99}) update or insert

Page 72: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Index -> str, list, tuple

1. 문자선택하기

2. 문자들에 0부터시작하는번호를부여

3. 순서열을가진변수에 []로문자선택이가능

4. 실습

a. a = “apple from the sky”

b. a[0]

c. a[1]

d. a[-1]

Page 73: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Slice -> str, list, tuple

1. 문자추출하기

2. 부여된번호로문자열일부또는전체를추출

3. 문자값을가진변수에에 [시작위치:종료위치]로문자선택가능

4. 시작위치와종료위치치는생략가능

a. 생략시각각처음과, 마지막을의미

5. 실습

a. a = ‘apple from the sky’

b. a[0:5]

c. a[6:]

d. a[:5]

e. a[0:len(a):2]

Page 74: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Sign up회원가입화면입니다.

Name은 10개를초과하면안됩니다.

Password는 Confirm Password

와일치해야합니다.

어떻게검증할까요?

Page 75: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Instagram

#hashtag

title=”On top of the world! Life is so fantastic if

you just let it. I have never been happier.

#nyc #newyork #vacation #traveling”

DB에서사진과내용을가져오는방법은아직모르니생각하지말고, 지금껏위에서언급했던내용을토대로

위사진 title 에서 hashtag(#로시작하는단어)를가져와 List 형태로저장해봅시다.

Page 76: 문과생 대상 파이썬을 활용한 데이터 분석 강의

source

signup_validation.py

https://gist.github.com/initialkommit/204829b158fb3ab96f32

instagram_tag.py

https://gist.github.com/initialkommit/87b8b8cede74a281805d

Page 77: 문과생 대상 파이썬을 활용한 데이터 분석 강의

차례

1. Programming

2. About Python

3. Python을이용한데이터분석

Page 78: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Completely free enterprise-ready Python distribution for

large-scale data processing, predictive analytics, and

scientific computing

270+ of the most popular Python packages for science, math,

engineering, data analysis

Page 79: 문과생 대상 파이썬을 활용한 데이터 분석 강의

이제부터데이터분석은IPython에서하겠습니다.

(anaconda 설치시자동설치)

Page 80: 문과생 대상 파이썬을 활용한 데이터 분석 강의

IPython

1. 대화형컴퓨팅을분석프로그래밍최적합2. 운영체제의쉘파일시스템과통합되어있음3. 웹기반의대화형노트북지원으로수식, 표,

그림등표현가능4. 가볍고빠른병렬컴퓨팅엔진이용5. 코딩의문서화, 테스트까지한화면에 r나으

Page 81: 문과생 대상 파이썬을 활용한 데이터 분석 강의

IPython

모르겠고,

일단해봅시다.

Page 82: 문과생 대상 파이썬을 활용한 데이터 분석 강의

IPython

command 창에서 ipython notebook을실행해보겠습니다.

material: http://bit.ly/1JKeERD

Page 83: 문과생 대상 파이썬을 활용한 데이터 분석 강의

Feel free to contact me

정광윤

1. email: initialkommit at gmail.com

2. blog: http://initialkommit.github.io/

3. twitter: @initialkommit