데이터 분석을 위한 라이브러리(1)

일상의 비결·2021년 11월 17일
0
post-thumbnail

본 포스팅은 elice2021 NIPA AI 온라인 교육을 듣고 개인 공부를 위해 정리한 것입니다.

1. 파이썬의 여러가지 모듈과 패키지

1) 모듈

코드의 길이가 길어지는 상황에서 모든 함수, 변수를 구현하는 것을 불가능
누군가 만들어놓은 함수, 변수 등을 활용하는 것이 효과적!

모듈

특정 목적을 가진 함수, 자료의 모임

라면 레시피라는 모듈이 있다고 하자. 이 모듈 안에는 라면을 끓이기 위해 필요한 여러 정보가 들어 있다. ku_ramen(), sok_ramen() 은 함수가 된다. 각 함수에 필요한 자료, 5(스프의 양), 550(물의 양)을 넣어주면 쿠지라이식 라면이 출력되어 나오는 것이다! ku_ramen(5, 550)
이렇게 함수와 함수에 필요한 자료들이 레고 블럭처럼 준비되어 있는 것을 모듈이라고 한다.

2) 모듈 사용하기

모듈 불러오기

모듈을 사용하기 위해서는 우선 모듈을 불러와야 한다.
import(불러오다) 키워드를 이용해서 모듈 사용

import random # random 모듈 불러오기

모듈 사용법 확인하기

모듈 속 사용하려는 함수/변수의 사용법 확인

random.randrange(start, stop, step)
: range(start,stop)중의 한 원소를 가지고 온다.

여기서 random은 모듈, randrange는 함수다.

모듈 사용하기

.(dot)을 쓴 후에 모듈 속 함수/변수 사용 (모듈.함수)
.연산자를 이용하여 모듈의 함수로 접근하는 것을 점표기법(Dot Notation)이라고 한다

import random

print(random.randrange(0,2)) # 0이상 2미만 수 중 임의로 출력

모듈 만들기

우리가 원하는 내용이 담긴 모듈이 없다면 제작도 가능하다.
.py(파이썬 파일)로 만들 수 있다.

import my_module
  1. py파일을 생성 후 함수와 변수를 만든다.
    cal 모듈plus 함수 생성
# cal.py

def plus(a, b):
	c = a + b
    return c
  1. 다른 파일에서 만들어 둔 py 파일을 불러온다.
    이 때 main도 모듈이다
# main.py

import cal
  1. 불러온 모듈 속 함수, 변수를 활용한다.
    cal.plus(3, 4) main 모듈에서 cal.plus 함수를 사용하겠다는 뜻
# main.py

import cal

print(cal.plus(3, 4))

실습✍ 모듈 만들기

  1. cal.py 파일을 열고, a,b를 인자로 갖는 함수 plus, minus를 정의해봅니다.
  • plus : a+b를 반환하는 함수
  • minus : a-b를 반환하는 함수
  1. cal.py 파일에서 변수 modelName을 만들고 ‘ELI-C2’를 대입해봅시다.
  2. main.py 파일을 열고, import cal을 이용해 저장된 모듈 cal을 불러와봅시다.
  3. 변수 var1에 모듈 cal의 모델이름(modelName)을 넣어봅시다.
  4. 변수 var2에 모듈 cal의 plus 함수를 이용해서 3+4의 값을 넣어봅시다.
  5. 변수 var3에 모듈 cal의 minus 함수를 이용해서 7-2의 값을 넣어봅시다.
  6. var1, var2, var3의 값을 출력하여 확인해봅시다.
# cal.py

def plus(a, b):
    return a + b

def minus(a, b):
    return a - b

modelName = 'ELI-C2'
# main.py

import cal

var1 = cal.modelName
var2 = cal.plus(3, 4)
var3 = cal.minus(7, 2)

print(var1, var2, var3)

>>> ELI-C2 7 5

3) 패키지

모듈을 폴더(Directory)로 구분하여 관리하는 것

project/
     script/
     sound/
     audio/
     ...

❔ 왜 패키지가 필요할까?🙄
모듈을 편리하게 관리하기 위해서!

❔ 다음과 같이 모듈이 있을 때, 이를 사용하는 방법은?
user(폴더) - cal(모듈) - plus(함수)

방법 1

import을 이용해서 폴더를 불러온 후, 함수 진행

import user.cal # 폴더.모듈

print(cal.plus(3, 4)) # 모듈.함수

방법 2

from-import 사용
함수/변수 사용시 .를 써주지 않아도 된다.

from user.cal import plus # user폴더 안의 cal모듈러부터 plus함수를 불러온다.

print(plus(3, 4))

이 경우 충돌이 일어날 수 있으므로 주의!
예를 들어 main.py에도 plus 함수가 있고, cal.py에도 plus 함수가 있다면 컴퓨터는 plus 함수가 어디에서 오는지 모른다😢

실습✍ import vs from-import

  1. from a import b를 이용해서 random의 randrange()를 불러와봅시다.
  2. import a를 이용해서 math 모듈을 불러와봅시다.
  3. 변수 var1에 randrange 함수를 이용해 1이상 10이하의 임의의 정수를 넣어봅시다.
  4. 변수 var2에 math.log 함수를 이용해 log725184의 값을 넣어봅시다.
  5. var1, var2를 출력하여 결과값을 확인해봅시다.
from random import randrange
import math

var1 = randrange(1, 11)
var2 = math.log(5184, 72)

print(var1, var2)

>>>2 2.0
  • random.randrange(x, y) 함수는 x부터 y-1까지의 숫자에서 임의의 숫자를 하나 반환
  • math.log(a, b) : a는 진수, b는 밑 즉 logba

실습✍ 웹페이지 방문

Python에서는 쉽게 웹페이지의 정보를 가져올 수 있는 urllib패키지를 제공한다.
이 패키지 안의 urllib.request.urlopen 함수는 해당 url의 html 파일을 가져온다.

위 함수를 이용해서 https://en.wikipedia.org/wiki/Lorem_ipsum 홈페이지의 정보 가져오기!

  1. from-import를 이용해서 urllib패키지 안 request 모듈에서 urlopen 함수를 불러오는 코드를 작성해봅시다.
  2. 다음 주소를 urlopen하고, read() 한 다음, 이를 utf-8으로 decode 한 결과를 변수 webpage에 넣어봅시다.
    https://en.wikipedia.org/wiki/Lorem_ipsum
  3. 변수 webpage를 출력해봅시다. 무엇이 나오나요?
from urllib.request import urlopen


webpage = urlopen("https://en.wikipedia.org/wiki/Lorem_ipsum").read().decode("utf-8")
# 문자는 꼭 따옴표를 붙여줘야 한다! url주소도, 인코딩(utf-8)도!
# 함수는 연속 사용이 가능하다.

print(webpage)

>>> ~~~~~~~ </script>
</body></html>
  • urlopen() : 이 함수에 url을 넣으면 해당 url에 접근한 결과를 얻을 수 있다.
  • read() : 결과를 해독하여 문자열로 반환한다.
  • decode() : 문자열을 특정 인코딩 방식으로 해독한다. (유니코드, 아스키 코드 등)
profile
한 발짝 두 발짝 개발자의 길로

0개의 댓글