Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

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

  • Login to see the comments

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

  1. 1. http://onoffmix.com/event/44315
  2. 2. 데이터 분석을 위한 Python 2014/04/16 정광윤 metaacademy.kr
  3. 3. 차례 1. Programming 2. About Python 3. Python을 이용한 데이터 분석
  4. 4. 차례 1. Programming 2. About Python 3. Python을 이용한 데이터 분석
  5. 5. code.org
  6. 6. Barack Obama
  7. 7. https://www.imaso.co.kr/news/article_view.php?article_idx=20141103112843 빠르면 2015년부터 소프트웨 어 교육 시작... 이창윤 미래부 인재정책과장 .. “코딩이 아니라 컴퓨팅적 사고 교육이 목표”
  8. 8. Everybody in this country should learn how to program a computer because it teaches you how to think. Steve Jobs
  9. 9. 프로그래밍: 수학 능력만 생각하기 쉽지만, 언어적 사고가 우선 된다.
  10. 10. ‘scratch’ educational programming language for children by MIT
  11. 11. 프로그래밍: 어떤 작업을 수행하기 위해 컴퓨터에게 지시하는 방법
  12. 12. 프로그래밍: 소프트웨어는 인간을 위한 것, 컴퓨터를 이용해 사람을 돕는 기술 Vanessa by CEO of ‘Girl Develop IT’
  13. 13. 프로그래밍: 여러분들이 의사가 되던 연 예인이 되던 먼저 프로그래 밍을 배워야 합니다. code.org
  14. 14. 왜냐면
  15. 15. Everybody in this country should learn how to program a computer because it teaches you how to think. Steve Jobs
  16. 16. 차례 1. Programming 2. Python 3. Python을 이용한 다양한 활용 영역 4. Python을 이용한 데이터 분석
  17. 17. Why Python?
  18. 18. Why Python? 1. 인간지향적인 간단한 문법 2. 가장 대중화된 언어 3. 다양한 라이브러리, 넓은 활용 범위 Reference: http://www.slideshare.net/blissray/w-37771905
  19. 19. 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
  20. 20. Why Python? 1. 인간지향적인 간단한 문법 2. 가장 대중화된 언어 3. 다양한 라이브러리, 넓은 활용 범위
  21. 21. Python: Increase 0.9% Javascript: Increase 1.3%
  22. 22. Why Python? 1. 인간지향적인 간단한 문법 2. 가장 대중화된 언어 3. 다양한 라이브러리, 넓은 활용 범위
  23. 23. 다양한 라이브러리, 넓은 활용 범위 https://pypi.python.org/pypi?%3Aaction=browse
  24. 24. 다양한 라이브러리, 넓은 활용 범위 https://pypi.python.org/pypi?%3Aaction=browse
  25. 25. 1. 웹 사이트 2. 데이터 분석 3. 머신 러닝 4. 게임 5. 웹 해킹 다양한 라이브러리, 넓은 활용 범위
  26. 26. 다양한 라이브러리, 넓은 활용 범위 http://www.scari.net
  27. 27. 다양한 라이브러리, 넓은 활용 범위 Python으로 만들어진 웹 서비스
  28. 28. 무슨 언어를 써야 할지 모르겠으 면 Python을 쓰면 된다. https://mirror.enha.kr/wiki/Python#s-6 다양한 라이브러리, 넓은 활용 범위
  29. 29. 차례 1. Programming 2. About Python 3. Python을 이용한 데이터 분석
  30. 30. 거두절미하고 맛부터 봅시다.
  31. 31. Python 맛보기
  32. 32. Python 맛보기
  33. 33. 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)
  34. 34. Python 맛보기 advanced 1. 값을 입력하지 않았다면 다시 입력받기
  35. 35. Python 맛보기 advanced 1. 값을 입력하지 않았다면 다시 입력받기 a. 만약 입력받은 값이 빈값이면 다시 입력받아라. b. 입력받은 값의 길이가 1보다 작으면 (즉, 없다면) 계 속 입력받아라.
  36. 36. Python 맛보기 advanced 1. 값을 입력하지 않았다면 다시 입력받기 a. 만약 입력받은 값이 빈값이면 다시 입력받아라. b. 입력받은 값의 길이가 1보다 작으면 (즉, 없다면) 계 속 입력받아라.
  37. 37. Python 맛보기 source welcome.py https://gist.github.com/initialkommit/590e16dd89937e20b539
  38. 38. 이제는 자세히 봅시다.
  39. 39. Python Basic 1. Object-Oriented Programming 2. 기초 문법 (변수, 연산) 3. 기초 문법 (제어문, 반복문) 4. Data Type
  40. 40. Python Basic 1. Object-Oriented Programming 2. 기초 문법 (변수, 연산) 3. 기초 문법 (제어문, 반복문) 4. Data Type
  41. 41. 객체(Object) or 인스턴스(Instance)
  42. 42. 클래스(Class)
  43. 43. 프로그래머 http://m.ohmynews.com/NWS_Web/Mobile/at_pg.aspx?CNTN_CD=A0000381710, 비하 목적 없음
  44. 44. 객체 속성 ● 이름: 황금잉어빵 ● 재료: 팥 ● 크기: 중간 ● 가격: 300원
  45. 45. 객체 함수 ● 말하기 ● 숨쉬기 Hello?
  46. 46. 여러개 객체 생성 Hello? Hello?Hello? Hello? Hello? Hello? Hello? Hello? Hell o?
  47. 47. 객체 속성 변경 ● 크기 속성을 '중간'에서 ' 작음' 으로 변경해서 객체 를 만듬
  48. 48. 객체 속성 변경 ● 입모양 속성을 '닫음'에서 '열림'으로 변경해서 객체 생성
  49. 49. 객체 속성 변경 ● 내용물 속성을 '팥'에서 '고구마', '커스타드' 등 으로 바꿔서 객체 생성
  50. 50. 파이썬은 객체 지향 프로그래밍이다. 1. 파이썬의 모든 것는 객체(object)다. 2. 그 객체에는 a. 속성이 있다. (상태값) b. 함수가 있다. (행동) 3. 숫자도 객체다. 4. 문자도 객체다. 5. 따라서 숫자와 문자에도 속성과 함수가 있다.
  51. 51. Python Basic 1. Object-Oriented Programming 2. 기초 문법 (변수, 연산) 3. 기초 문법 (제어문, 반복문) 4. Data Type
  52. 52. 기초 문법을 배우기 전에 Python부터 실행해봅시다.
  53. 53. 실행 방법 1. 윈도우 사용자 a. 시작 > Python27 > IDLE b. 혹은 시작 > 실행 > cmd > python 2. 맥/리눅스 사용자 a. Terminal > pythonon
  54. 54. Command Line Interface(CLI) ● 앞으로는 화려한 GUI(Graphic User Interface) 보다는 MS-DOS 와 같은 Command 입력 방 식에 익숙해질 필요가 있습 니다. o 빠르기 때문에 o 간편하기 때문에 o 편하기 때문에
  55. 55. 다시 돌아가서, 앞으로 나오는 것은 실습하면서 공부하겠습니다.
  56. 56. 변수 (Variable) ● x = 1 + 2 o 수학  x는 1 + 2의 값인 3이다. o 프로그래밍  1 + 2의 값인 3을 x라는 변수에 할당한다.  x라는 변수에는 숫자 형태의 데이터 3 이라는 값을 가리키고 있는 주소를 가지고 있다. ● 변수 o 특정 데이터를 담는 그릇 o 특정 데이터는 특정 장소에 저장되고, 변수는 그 장소의 주소값 을 가지고 있다.
  57. 57. 연산 ● 산술 연산 o 연산자(Operator)  +  -  *  / ● 비교 연산 o < o <= o > o >= o == o != ● 논리 연산 o or o and o not
  58. 58. Python Basic 1. Object-Oriented Programming 2. 기초 문법 (변수, 연산) 3. 기초 문법 (제어문, 반복문) 4. Data Type
  59. 59. if 조건문 if condition1: condition1이 참(true)일 때 elif condition2: condition1이 거짓(false)이고, condition2가 참일 때 elif conditionN: …. else: 앞의 조건이 모두 거짓일 때
  60. 60. for 반복문 for item in items: 실행문1 실행문2 ● items 중에서(in)에서 하나의 item에 대해 아래 실행문 실행하는데 실행문이 끝나면 다음 item에 대해 실행한다. ● 즉, items 의 값을 하나씩 꺼내 item 에 assign 하며 모든 item 에 대해 반복 ● continue o 이번 수행을 하지 않고 다음으로 이동한다. ● break o loop를 빠져나간다.
  61. 61. while 반복문 while condition: 실행문1 실행문2 . ● condition이 참인 동안(while) 아래 실행문을 계속 실행한다. ● 즉, 참이 아닌 경우에는 아래 실행문을 실행하지 않고 빠져 나온다. ex) while len(name) < 1: name = raw_input(“Please enter your name: ”)
  62. 62. 다른 언어에는 없는 것 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칸
  63. 63. Python Basic 1. Object-Oriented Programming 2. 기초 문법 (변수, 연산) 3. 기초 문법 (제어문, 반복문) 4. Data Type
  64. 64. Data Type ● Python는 변수를 선언할 때 Data Type을 따로 표시하 지 않는다. ● Javascript ○ var a=1; ○ var b=2; ○ var z=a+b; ● python ○ a=1 ○ b=2 ○ z=a+b
  65. 65. Data Type
  66. 66. 순서열 - str 1. 양의 정수로 색인되는 순서있는 객체들의 모음 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()
  67. 67. list & tuple list tuple people = [”Justin”, u“수지”, u“허지웅”] people = (”Justin”, u“수지”, u“허지웅”) 수정/추가/삭제 가능 수정/추가/삭제 불가능 list 안의 list 가능 (nested-list) tuple 안의 tuple 가능 (nested-tuple) index & slice
  68. 68. 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에 대한 값 출력 후 제거
  69. 69. 사전형 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
  70. 70. Index -> str, list, tuple 1. 문자 선택하기 2. 문자들에 0부터 시작하는 번호를 부여 3. 순서열을 가진 변수에 []로 문자 선택이 가능 4. 실습 a. a = “apple from the sky” b. a[0] c. a[1] d. a[-1]
  71. 71. 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]
  72. 72. Sign up 회원가입 화면입니다. Name은 10개를 초과하면 안됩니 다. Password는 Confirm Password 와 일치해야합니다. 어떻게 검증할까요?
  73. 73. 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 형태로 저장해봅시다.
  74. 74. source signup_validation.py https://gist.github.com/initialkommit/204829b158fb3ab96f32 instagram_tag.py https://gist.github.com/initialkommit/87b8b8cede74a281805d
  75. 75. 차례 1. Programming 2. About Python 3. Python을 이용한 데이터 분석
  76. 76. 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
  77. 77. 이제부터 데이터 분석은 IPython에서 하겠습니다. (anaconda 설치 시 자동 설치)
  78. 78. IPython 1. 대화형 컴퓨팅을 분석 프로그래밍 최적합 2. 운영체제의 쉘 파일 시스템과 통합되어 있음 3. 웹 기반의 대화형 노트북 지원으로 수식, 표, 그림 등 표현 가능 4. 가볍고 빠른 병렬 컴퓨팅 엔진 이용 5. 코딩의 문서화, 테스트까지 한 화면에 r나으
  79. 79. IPython 모르겠고, 일단 해봅시다.
  80. 80. IPython command 창에서 ipython notebook을 실행해보겠습니다. material: http://bit.ly/1JKeERD
  81. 81. Feel free to contact me 정광윤 1. email: initialkommit at gmail.com 2. blog: http://initialkommit.github.io/ 3. twitter: @initialkommit

×