파이썬이 인기있는 이유 중 하나는 파이썬의 인기 그 자체다. 다양한 application에서 python을 사용하는 많은 사람들 덕분에 다른 사람의 결과물을 가져와 쉽게 사용할 수 있다. Library라고 하는 미리 정의된 코드들 덕분에 개발자들은 일반적인 task를 쉽고 빠르게 수행할 수 있다.
이번 포스팅에서는 python의 라이브러리를 생성하고 불러오는 방법에 대해 배우고, 유명한 라이브러들 몇 가지를 소개한다.
라이브러리 정의 Defining a Custom Library
단순히 미리 정의된 함수나 클래스의 집합 스크립트를 모듈이라고 하는데, 라이브러리는 비슷한 기능들을 하는 모듈의 집합이라고 이해할 수 있다. 라이브러리를 생성한다는 것은 하나의 파일 안에 한개 이상의 .py
스크립트를 작성하는 것이다. 만약 사칙연산을 하는 함수들의 미리 정의해 라이브러리화 하고자 한다면 custom_math.py
파일을 아래와 같이 작성해 저장하면 된다.
# file naem : custom_math.py
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
return x / y
라이브러리 임포트 Importing libraries
라이브러리를 불러와 사용하기 위해서는 import
뒤에 라이브러리 명을 작성하면 된다. 위의 예에서 정의한 custom_math
라이브러리를 불러온다고 하면 다음과 같이 불러와 사용할 수 있다. 불러온 라이브러리에 만들어진 기능을 사용하기 위해서는 class에서 attribute와 method에 접근하는 것과 같은 방법으로 library명.함수명
으로 접근할 수 있다.
import custom_math
result = custom_math.add(5,10) # 15
만약 라이브러리 내에 일부 기능만 불러오고자 한다면 from libray명 import 함수명
으로 불러올 수 있다. 만약 함수명에 wildcard(*
)를 입력 시 라이브러리 내에 모든 함수를 불러오고 library명 없이 기능들을 사용할 수 있다.
from custom_math import * # 모든 함수를 불러옴
result = add(5,10) # 15
유명한 라이브러리들
Numpy
numpy는 과학 연산이나 데이터 처리에 매우 유명한 라이브러리이다. python의 단점인 연산 속도를 향상시키고 거대한, 고차원의 데이터 연산을 빠르게 해주었다. numpy는 array라는 데이터 형태를 기본으로 사용하며 선형대수 연산들을 쉽게 구현할 수 있게해 인공 지능, 최적화 등 과학 연산 등을 수행하기 위해 필수적인 라이브러리다.
Pandas
판다스는 데이터 분석과 처리에서 Numpy만큼 유명한 라이브러리다. Numpy는 연산 자체에 강점이 있지만 Pandas는 정형 데이터를 다루는데 편리한 자료형을 제공한다. 그 중 DataFrame은 database의 table 형태의 자료형으로 csv, excel, db로부터 데이터를 불러와 파이썬 프로그램 내에서 활요하는 것을 편리하게 만들어준다. 또 기본적으로 제공하는 통계, 데이터 처리, 시각화 기능들 덕분에 데이터 분석에 없어서는 안될 라이브러리이다.
Matplotilb
matplotlib은 논문에 실을 정도 수준의 시각화 자료를 그릴 수 있는 라이브러리이고 매우 유연한 커스터마이징이 가능하다는 장점이 있다. 다만 처음에 배우기가 어렵다는 단점이 있지만 기본적인 시각화 라이브러리이다.
결론
이번 포스팅을 통해 라이브러리를 작성하고, 불러오는 방법에 대해 학습하였고 데이터 분석과 관련된 대표적인 라이브러리들을 소개했다. 라이브러리를 사용했을 때 기능을 control 하는 main 프로그램이 간단해져 가독성이 향상되고, 유지보수 시 필요한 모듈만 수정하면 되기 때문에 관리의 편리성도 향상된다. 그리고 무엇보다 여러 사람들이 공동 개발하는 경우 큰 프로젝트를 작은 단위로 개발하는 것이 가능해지기 때문에 협업에 필수적이라고 할 수 있다.
이 포스팅에서 소개한 라이브러리 학습을 위한 책 중 500쪽 이상이 되는 책이 여러 권이 있을 만큼 많은 학습이 필요하다. 기본적인 기능들을 사용하면서 '이런 기능도 있을까?'라는 생각이 들때마다 구글링을 해보는 습관을 갖자. 이 외에도 셀 수 없을 만큼 많은 기능을 하는 라이브러리들이 많기 때문에 구현해보고 싶은 아이디어가 떠오르면 'python ~~ 라이브러리'로 검색을 해보자. 생각보다 쉽게 구현할 수 있는 것들이 아주 많다.
'프로그래밍 언어 > python' 카테고리의 다른 글
[python 환경 구축 0] Miniconda와 VS CODE로 시작하는 python (0) | 2023.05.11 |
---|---|
[python 기초 7] pandas 시작하기 (0) | 2023.04.16 |
[python 기초 5] Class (0) | 2023.03.24 |
[python 기초 4] 함수 (0) | 2023.03.11 |
[python 기초 3] List, Tuple, Set, Dictionary (0) | 2023.03.06 |