ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 03-5 중심경향의 지표들과 파이썬 : 라이브러리와 모듈
    데이터 분석/파이썬으로 배우는 데이터 분석을 위한 통계학 2022. 3. 16. 17:10

     중심경향의 지표들을 파이썬으로 구하기 위한 방법들을 살펴봤어. 평균, 중앙값 그리고 최빈값이었지.

    파이썬, 혹은 프로그래밍을 조금이라도 배워봤던 친구들은 그렇게 어렵지 않았겠지만 파이썬을 처음 배웠다면 쉽지는 않았을지도 몰라. 중심경향을 구하기 위한 알고리즘을 코드로 구현해 놓은 것들을 단 번에 이해하는건 큰 도전이기 때문이지. 여기까지 따라 온 것만 해도 정말 대단한거야. 고마워!

     

     그런데, '데이터 분석을 위해 파이썬을 배우고 있는건데 왜 파이썬만의 특별함이 없는 것 같지?' 라는 의문이 들지 않았어? 여러가지 코드들을 살펴 보면 다른 프로그래밍 언어에서도 동작할 수 있는 로직으로 짜여진 것을 알 수 있어. 꼭 파이썬이 아니라 C언어나 java에서도 동작할 수 있는 코드들이지. 그럼 '뭣 하러 굳이 파이썬으로 배우는가?' 라는 생각이 들거야. 이제부터 그 대답을! 해! 줄게!

     

     파이썬은 문법 자체가 직관적이고 배우기 쉽기 때문에 프로그래밍 언어를 처음 배우는 사람들도 다른 언어에 비해 익숙해지기 수월해. 그치? 그리고 다량의 데이터를 처리하는데도.. 좋지만.. 우리는 아직 다량의 데이터를 다룰 수 없으니까 이건 큰 장점이 되질 않겠네. 하지만! 데이터 분석에 있어서 가장! 강력한! 장점은!

     엄청난 '라이브러리(library)' 라고 할 수 있어. (혹은 '패키지(package)')

     

     잉? 라이브러리는 도서관 아닌가?

     맞아. 하지만 파이썬에서 라이브러리는 파이썬에서 사용 가능한 프로그램(책)을 모아둔 것이라고 생각하면 돼. 파이썬의 표준 라이브러리는 우리가 따로 설치할 필요 없이 파이썬에서 사용 가능해. 파이썬의 표준 라이브러리에 대해서는 아래의 링크를 참고하면 돼.

    https://docs.python.org/ko/3.11/library/index.html

     

    파이썬 표준 라이브러리 — Python 3.11.0a6 문서

    파이썬 표준 라이브러리 파이썬 언어 레퍼런스 는 파이썬 언어의 정확한 문법과 의미를 설명하고 있지만, 이 라이브러리 레퍼런스 설명서는 파이썬과 함께 배포되는 표준 라이브러리를 설명합

    docs.python.org

     라이브러리에는 '모듈(module)'이 있어. 모듈은 우리가 아직 배우지 않은 클래스나 함수 혹은 변수 같은 것들을 모아놓은 놈인데.. 라이브러리가 폴더라면, 모듈은 파일이야. 나중에 다시 자세히 다뤄볼게! 앞으로 우리는 모듈을 굉장히 많이 사용하게 될거야. 주로 이미 만들어진 모듈을 사용하겠지만 원하면 여러분들도 모듈을 만들 수 있어. 암튼 오늘은 모듈을 어떻게 사용하는지 살펴볼거야.

     

    모듈을 사용하고자 할 땐 'import' 라는 예약어를 사용하면 돼.

     

    import 모듈(혹은 라이브러리)이름

     

     사실 라이브러리가 존재한다는 전제 하에 그냥 모듈이름만 적어서 import 하겠다는건데.. 나중에 다룰 거니까 이번에는 그냥 '이미 설치된 라이브러리의 모듈이름만 알면 import 할 수 있구나!' 정도만 알고 넘어갈게. (물론 라이브러리 자체를 import 할수도 있어!)

     

     파이썬을 설치하면 표준 라이브러리(위의 문서 링크)로 'math'라는 모듈이 존재 해. 이름만 딱 봐도 수학과 관련된 모듈이겠지? 'math'라는 모듈을 import 하려면

     

    import math

     

     처럼 해주면 돼. 참 쉽지? 이왕 'math' 모듈에 대한 이야기가 나온거 한 번 써볼까?

     'math' 모듈에는 어떤 수의 제곱근을 구할 수 있는 'sqrt()'라는 함수가 있어. 'sqrt()'라는 함수는 파이썬의 기본 내장 함수가 아니기 때문에 그냥 사용하려고 하면 에러가 날거야. 아래의 코드를 볼까?

     

     

    a의 제곱근을 구하려고 'sqrt()'라는 함수를 사용하려고 시도했더니, '정의되지 않은 함수를 호출했으니까 에러~'라는 메시지를 볼 수 있어. 그럼 우리는 제곱근을 구하기 위한 'sqrt()' 함수를 직접 만들어서 정의하거나 혹은 'math' 모듈에 이미 만들어진 'sqrt()' 함수를 사용할 수도 있어. 이번 시간에는 모듈을 배울거니까 'math' 모듈을 사용해서 'sqrt()' 함수를 사용해 볼까?

     모듈의 함수를 사용하기 위해서는 모듈의 이름을 함수 앞에 마침표(.)와 함께 붙여주면 돼.

     

    모듈이름.함수()

     

     만약 'math' 모듈의 'sqrt()' 함수를 사용하고자 한다면, 'math.sqrt()'와 같은 형태가 되겠지? 단, 그 전에 'math' 모듈이 import 되어야만 해. 아래의 코드를 살펴볼게.

     

     

    1번 줄에서 'math' 모듈을 import 했어. 이제 math 모듈의 함수를 사용할 수 있게 된거야. 그리고 4번 줄에서 'math' 모듈의 'sqrt()' 함수를 사용했지. 이처럼 모듈과 함수 이름만 알면 사용하기 참 쉽겠지?

     

    -

     

     그럼 이제 평균을 구해 볼 거야. 이번에는 직접 구하는게 아니라 파이썬의 모듈을 사용해 볼거야!

     

     파이썬 표준 라이브러리 처럼 기본적으로 제공되는 라이브러리도 있지만 따로 설치해 주어야 되는 라이브러리도 있어. 이 강좌는 파이썬 3.4 버전 이상의 google colab을 기본으로 깔고 가기 때문에 'statistics'라는 모듈이 들어있는 라이브러리를 따로 설치하지 않고 사용해 볼거야. 모듈의 이름만 들어도 통계학의 냄새가 물씬 풍기지?

     

     아마 여러분들의 실습 환경은 google colab이 될텐데, (혹은 이 강좌에서 웹으로 제공되는 trinket도 좋아) 만약 여러분들이 파이썬 3.4 버전보다 낮은 버전을 사용하고 있다면 라이브러리를 따로 설치해 주어야 돼. 하지만, 라이브러리와 모듈에 관해서는 나중에 다시 다루기로 했으니까 그 때 다시 설명해 줄게! 대신 이번 강좌에서는 이미 'statistics'라는 모듈을 사용할 수 있는 표준 라이브러리가 설치 되어있다는 전제 하에서 설명할게! 'statistics' 모듈에 대한 자세한 설명은

     

    https://docs.python.org/ko/3/library/statistics.html#

     

    statistics — 수학 통계 함수 — Python 3.10.2 문서

    statistics — 수학 통계 함수 소스 코드: Lib/statistics.py 이 모듈은 숫자 (Real 값) 데이터의 수학적 통계를 계산하는 함수를 제공합니다. 이 모듈은 NumPy, SciPy와 같은 제삼자 라이브러리나 Minitab, SAS 및

    docs.python.org

     위 링크의 문서를 참고하면 돼!

     

     가장 먼저 할 일은 'statistics'라는 모듈을 import 해주는 일이야. 'import statistics'라는 명령어로 가능하겠지? 그리고 'statistics' 모듈에서 산술 평균을 구할 수 있는 'mean()'이라는 함수를 사용해 볼거야. 설명만 들어도 굉장히 쉬울거 같다는 느낌이 오지? 'mean()'이라는 함수는 데이터의 산술 평균을 바로 돌려주는 함수야. 아래의 코드를 볼까?

     

     

     하핫! 우리가 리스트의 항목들을 다 더한 다음 리스트의 길이를 구해서 나누고 했던 과정들이 단 한 줄의 코드로 구현되었어! 엄청 쉽지! 하핫! 이럴거면 왜 다 더하고 나누고 하는 것들을 배웠는지 몰라!?

     

     아냐. 프로그래밍에서는 여러가지 방법을 아는것이 가장 좋아! 우리는 결과가 아니라 과정을 배우고자 하는 거니까.

     

     암튼 정말 쉽게 산술 평균을 구할 수 있었어. 그렇다면 중앙값이나 최빈값도 쉽게 구할 수 있지 않을까?

     맞아! 중앙값은 'statistics' 모듈의 'median()' 함수로, 최빈값은 'mode()' 함수로 구할 수 있어. 으악 넘 쉬워 보인다.. 한 번 코드를 볼까?

     

     

     'statistics' 모듈을 사용했더니 정말 쉽게 중앙값과 최빈값을 구할 수 있었어! 크으..

     이럴거면 왜 조건문과 반복문을 배웠나 몰라..? 하핫!

     

    -

     

     이번에는 'statistics' 모듈이 아닌 'numpy' 라이브러리를 사용해 볼거야. 'statistics' 모듈을 통계적 수치를 계산하기 위한 모듈이라면, 'numpy' 라이브러리는 데이터 분석을 위한 라이브러리야. 앞으로 자주 보게 될 놈들이니 익숙해지면 좋겠지?

     

     'numpy(넘파이)' 라이브러리는 google colab 환경이나 trinket에는 설치가 이미 되어있기 때문에 따로 설치를 해주지 않아도 돼. 하지만 기본 파이썬 라이브러리가 아니라서 다른 환경에서 실습하는 친구들은 꼭 'numpy' 라이브러리를 설치해 주어야 돼. 설치하는 방법은 아래의 명령어로 가능해. (google colab이나 trinket을 사용하는 친구들은 설치 할 필요 없음!)

     

    pip install numpy

     

      'numpy' 라이브러리를 설치 했으면 import 시켜줘야겠지? 'import numpy'와 같은 명령어로 'numpy' 라이브러리를 import 할 수 있어. 'numpy' 라이브러리를 import 하면 서브패키지까지 자동으로 import 되기 때문에 서브패키지의 모듈을 바로 사용할수 있어! 무슨 말이냐면, numpy 라이브러리를 import 하는 것 만으로도 관련된 함수를 바로 사용할 수 있다는 것이지! 편하지?

     

    그런데 이때, 'numpy' 라이브러리는 너무 널리 쓰이는 라이브러리이다보니 'numpy를 np로 줄이자!' 라는 것이 관례야. 만약 어떤 라이브러리나 모듈의 이름을 줄이고자 한다면,

     

    import 모듈(혹은 라이브러리)이름 as 줄임말

     

     이렇게 'as'를 붙여서 줄일 수 있어. 만약 'numpy'를 'np'로 줄이고자 한다면,

     

    import numpy as np

     처럼 코드를 만들면 돼.

     

     이제 우린 'numpy'에서 평균을 구할 수 있는 함수인 'mean()'과 중앙값을 구하기 위한 함수인 'median()'를 사용해 볼거야. 'numpy'에 최빈값을 구하기 위한 적절한 함수가 없기 때문에 만약 최빈값을 구하고자 한다면 앞서 배웠던 'statistics' 모듈을 사용하면 되겠지?

     

     

     'numpy' 라이브러리를 'np'로 줄여서 'mean()' 함수와 'median()' 함수를 사용해 봤어. 이번에도 참 쉽게 평균과 중앙값을 구할 수 있었지? 하핫!

     

    -

     

     'statistics' 모듈과 'numpy' 라이브러리는 앞으로도 종종 만날 놈들이니까 이번에 기억해 두면 좋겠네!

     그리고 라이브러리와 모듈을 사용한다면 통계적 수치를 계산하거나 데이터 분석을 하는데 있어서 파이썬이 얼마나 편할 것인지에 대해 느꼈으면 좋겠어. 그러라고 일부러 라이브러리와 모듈을 사용해서 쉽게 계산하는 강좌를 나중에 둔 거니까..

     

     그럼 다음 시간에도 재미있는 통계학과 파이썬의 세계로 떠나보자구~ 안뇽~

     

     

Designed by Tistory.