# 4.1.   파이썬(Python)

머신러닝과 딥러닝 그리고 데이터 분석 작업은 반복 작업을 빠르게 처리하고 손쉽게 조작할 수 있는 도구가 필요 합니다. 가장 적합한 도구로 선택되고 있는 것이 바로 파이썬입니다. 머신러닝, 딥러닝을 제대로 공부하고 싶다면 다른 프로그래밍 언어보다 파이썬을 공부하는 것이 훨씬 유리합니다. 파이썬의 딥러닝/머신러닝 관련 라이브러리들은 다른 언어에서 따라올 수 없는 부분입니다.\


파이썬(영어: Python)은 1991년 프로그래머인 귀도 반 로섬(Guido van Rossum)이 발표한 고급 프로그래밍 언어로, 플랫폼 독립적이며 인터프리터식, 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어입니다. 파이썬이라는 이름은 귀도가 좋아하는 코미디 〈Monty Python's Flying Circus〉에서 따온 것입니다.&#x20;

파이썬의 사전적인 의미는 고대 신화에 나오는 파르나소스 산의 동굴에 살던 큰 뱀을 뜻하며, 아폴로 신이 델파이에서 파이썬을 퇴치했다는 이야기가 전해지고 있습니다. 대부분의 파이썬 책 표지와 아이콘이 뱀 모양으로 그려져 있는 이유가 여기에 있습니다.

![](https://3656991276-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LbBOSivlH5hwcpk3QX6%2F-LbMBhWGxDMyZKT7kYH_%2F-LbMC9GtmxgUSrYSn562%2F121.png?alt=media\&token=894ee290-8d32-432d-bb10-02c106ddb56d)

파이썬은 비영리의 파이썬 소프트웨어 재단이 관리하는 개방형, 공동체 기반 개발 모델을 가지고 있습니다. C언어로 구현된 C파이썬 구현이 사실상의 표준입니다.

파이썬은 초보자부터 전문가까지 사용자층을 보유하고 있습니다. 동적 타이핑(dynamic typing)이 가능한  범용 프로그래밍 언어로, 펄 및 루비와 자주 비교됩니다. 다양한 플랫폼에서 쓸 수 있고, 라이브러리(모듈)가 풍부하여, 대학을 비롯한 여러 교육 기관, 연구 기관 및 산업계에서 이용이 증가하고 있습니다. 또 파이썬은 순수한 프로그램 언어로서의 기능 외에도 다른 언어로 쓰인 모듈들을 연결하는 접착 언어(glue language)로써 자주 이용됩니다. 실제 파이썬은 Paint Shop Pro, 오토데스크 마야, TORRENT, 카카오톡 등과 같은 많은 상용 응용 프로그램에서 스크립트 언어로 채용되고 있습니다. 도움말 문서도 정리가 잘 되어 있으며, 유니코드 문자열을 지원해서 다양한 언어의 문자 처리에도 능합니다.

파이썬은 기본적으로 인터프리터 위에서 실행될 것을 염두에 두고 설계되었습니다. 파이썬은 컴파일러 언어가 아닌 인터프리터 언어이기 때문에 한줄 한줄 라인별로 프로그램을 실행 시키며 결과를 확인 할 수 있습니다.

C, JAVA, Python 등과 같은 고급언어로 쓰여진 프로그램이 컴퓨터에서 수행되기 위해서는 컴퓨터가 직접 이해할 수 있는 언어로 바꾸어 주어야 합니다. 이러한 일을 컴파일이라고 합니다.

컴파일 언어와 인터프린터 언어의 가장 큰 차이점은 컴파일 시점 입니다. 컴파일러는 프로그램 전부를 실행 전에 한꺼번에 기계어로 번역합니다. 기계어로 번역된 실행 파일(.exe)이 존재합니다. 인터프리터는 한줄씩 기계어로 번역과 실행이 동시에 이루어진다. 즉, 별도의 실행파일이 존재하지 않습니는다.

파이썬은 데이터 과학 분야를 위한 표준 프로그래밍 언어가 되어 가고 있습니다. 파이썬은 범용 프로그래밍 언어의 장점은 물론 MATLAB과 R 같은 특정 분야를 위한 스크립팅 언어의 편리함을 함께 갖추고 있습니다. 또한 파이썬은 데이터 적재, 시각화, 통계, 자연어 처리, 이미지 처리 등에 필요한 라이브러리들을 가지고 있습니다. 이러한 많은 도구가 데이터 과학자에게 아주 풍부하고 일반적인, 그리고 또 특수한 기능들을 제공해줍니다.

머신러닝과 딥러닝 그리고 데이터 분석은 데이터 주도 분석이라는 점에서 근본적으로 반복 작업입니다. 그래서 반복 작업을 빠르게 처리하고 손쉽게 조작할 수 있는 도구가 필수인 것입니다. 그러한 이유로 파이썬이 선택 되고 있는 것입니다.

범용 프로그래밍 언어로서 파이썬은 복잡한 그래픽 사용자 인터페이스(GUI)나 웹 서비스도 만들 수 있으며 기존 시스템과 통합하기도 좋습니다.

머신러닝, 딥러닝을 제대로 공부하고 싶다면 다른 프로그래밍 언어보다 파이썬을 공부하는 것이 훨씬 유리합니다. 파이썬의 딥러닝/머신러닝 관련 라이브러리들은 다른 언어에서 따라올 수 없는 부분입니다. 유명한 파이썬 라이브러리로는 넘파이(NumPy), 판다스(Pandas), 스페이시(SpaCy), 사이킷-런(Scikit-learn)등이 있습니다.&#x20;

딥러닝 관련하여 텐서플로우(TensorFlow), 파이토치(PyTorch), 체이너(Chainer), 아파치 MXNet(Apache MXNet), 테아노(Theano) 등 거의 모든 프로젝트에서 파이썬을 가장 우선시합니다. 대부분의 머신러닝과 딥 러닝 프레임워크는 파이썬용으로 만들어지며, AI 분야에서 일하는 거의 모든 사람들이 파이썬을 이야기합니다.
