반응형

Jupyter Notebook이란

Jupyter Notebook은 오픈 소스 웹 애플리케이션으로 라이브 코드, 등식, 시각화와 설명을 위한 텍스트 등을 포함한 문서를 만들고 공유하도록 할 수 있습니다. 

주로 데이터 클리닝과 변형, 수치 시뮬레이션, 통계 모델링, 머신 러닝 등에 사용할 수 있습니다.

Jupyter Notebook은 Python, R, Julia, Scala 등 데이터 과학 분야에서 인기있는 40종의 다양한 프로그래밍 언어를 지원합니다. 또한, 이메일, 드롭박스, 깃허브 등으로 공유할 수 있습니다. 가장 큰 장점은 실시간으로 인터렉티브하게 데이터를 조작하고 시각화할 수 있도록 해준다는 점을 것입니다.

신규 사용자는, Anaconda를 설치하는 것을 권장합니다. Anaconda는 과학적 컴퓨팅과 데이터 사이언스를 위해 필요한 라이브러리들을 대부분 포함하고 있기 때문입니다.

추가적으로 말씀드리자면, python 라이브러리들에 대한 관리를 pyenv와 virtualenv(python 가상 환경)을 사용해서 관리하는 것이 좋습니다.  

 

1. Jupyter Notebook 시작

터미널에서 

>>> jupiter notebook

을 입력하세요.

그러면, 기본 웹 브라우저에서 다음과 같은 Notebook Dashboard가 구동되는 것을 볼 수 있을 것입니다.

위 화면에서 확장자가 .ipynb인 파일을 클릭해 이미 작성된 Notebook을 실행시킬 수 있고, 오른쪽 상단의 New버튼을 눌러 팝업 메뉴에서 python[defalut] 또는 python[conda root]를 선택해서 새로운 Notebook을 열 수도 있습니다.(참고로, 새로운 Notebook을 선택하는 Python[conda root, default, 2, 3]는 anaconda로 실행했을 때와 python에 별도로 jupyter notebook 관련 라이브러리를 설치하고 실행했을 때 조금 다르게 보일 수 있습니다)

반응형

2.  Jupyter Notebook 사용해 보기

새로운 Notebook을 실행하고, 각 셀에 파이썬 코드 및 등식, 설명을 입력합니다.설명 및 등식을 입력하려면, 아래 그림과 같이 상단 가운데 선택 메뉴에서 마크다운(Markdown)을 선택하고 입력하면 됩니다. 다 입력한 후에는 Shift+Enter(또는 Ctrl+Enter)로 실행 명령을 내립니다.

 

3. 단축키

<Command Mode>

- Enter : 에디트 모드(Edit Mode)로 진입- Y : 코드(Code) 셀로 전환- M : 마크다운(Markdown) 셀로 전환- R : Raw NB 셀로 전환- 1~6 : 마크다운 H1~H6- a : 위에 셀 삽입- b : 아래 셀 삽입

<Edit Mode>

- Tab : 코드 자동완성, 들여쓰기- Ctrl+] : 들여쓰기(intent)- Ctrl+[ : 내어쓰기(detent)- Ctrl+a : 전체 선택- Ctrl+z : 실행 취소(undo)- Esc : 커맨드 모드(Command mode)로 진입- Shift+Enter : 셀 실행하고 다음 셀 선택- Ctrl+Enter : 셀 실행- Alt+Enter : 셀 실행하고, 아래 셀 삽입


Jupyter Notebook도 제대로 사용하려면 생각보다 많은 것을 배워나가야 할 것 같네요. 그래도 위에 열거한 

기본적인 사항만 알면 실행하는데 크게 문제는 안되리라 생각합니다. 

 

반응형
반응형

4차 산업혁명 시대의 데이터 사이언티스트(Data Scientist)를 위한 파이썬 라이브러리(Python Library)

요즘 파이썬을 배워서 진출할 수 있는 직업 중에 데이터 사이언티스트가 핫한 것 같다. 4차 산업혁명과 함께 많이들 선호하고 있는 상태가 되었다.

하지만, 언론, 소셜 등에서 너무 많은 관심을 보이는 것이 거품이 될까 우려가 좀 된다. 2000년 초에 인터넷 기업 붐이 엄청나게 일어나고, 갑자기 거품이 꺼졌을 때 처럼 될 것 같아 보이기 때문이다. 


요즘 가장 열광하는 단어는 단연 AI일 것이라고 생각한다. 

그런데, 머신러닝(machine learning), 그 중에서 딥 러닝(deep learning)에 집중하는 것은 인터넷 자체가 혁신을 일으킬 것처럼 말했던 상황을 답습하는 것이 아닐까 하는 생각이 든다.


가장 중요한 것은 고객에게 제공하는 서비스, 제품일 것이다. 그래서 고객의 요구사항(애로사항)을 파악하는 것이 무엇보다 중요할 것이다. 

이런 관점을 갖고, 데이터와 AI의 결합을 바탕으로 고객들이 원하는 서비스(제품)을 만드는 기업 또는 사람이 되어야 한다고 믿는다.


'소프트웨어(데이터)가 모든 세계를 지배하는 세상'이라는 말은 디지털화된 데이터와 그것을 다루는 기술인 AI(그 중에서 머신 러닝)가 보편화된 세상을 말한다고 본다. 인터넷처럼 우리 생활에 스며들 것이기 때문에,  AI를 다루는 것과 데이터를 다루는 것은 기본이 될 것이다. 

앞으로 이것을 통해 어떤 가치를 고객에게 제공하느냐가 중요한 생존의 문제가 될 것이라는 것이다. 

사람들이 필요로 하는 가치(서비스, 제품)을 제공하는 수준까지 가기 위한 여정을 막 시작했다고 생각한다.

 

그럼, 가장 기본이 되는 라이브러리부터 알아보도록 하자.


데이터 사이언티스트들이 파이썬에서 사용하는 라이브러리들은 Numpy, Scipy, Pandas, Scikit-Learn 등이 있다. 


요즘에는 구글의 딥 러닝 라이브러리인 tensorflow의 인기가 높다.

tensorflow에 대해서는 따로 알아보도록 할 것이다.


1. Numpy, Scipy

Numpy와 Scipy는 숫자 및 과학 계산을 수행하기 위한 라이브러리라고 할 수 있다

Numpy는 기본 계산 기능을 가진 다차원 배열과 유용한 선형대수학 함수를 지원한다.

Scipy는 숫자 알고리즘 집합과 신호 처리, 최적화, 통계 등을 포함한 도메인에 특화된 기능을 지원한다.


(참고로, Matplotlib는 데이터 시각화를 위한 많은 툴을 가지고 있다)


2. Pandas

Pandas는 고성능의 데이터 구조와 데이터 분석 툴을 제공한다. 

Pandas의 주요 특징은 통합된 인덱싱과 함께 데이터 조작이 가능한 빠르고 효율적인 DataFrame 객체이다. 

DataFrame 구조는 매우 유연한 방법들로 작업이 가능한 스프레드시트처럼 볼 수 있다.

 재구조화하고, 행과 열을 추가하거나 제거하는 것을 통해 원하는 방식으로 어떤 데이타셋으로든 쉽게 변경할 수 있다. 

또한 데이터셋 간에 계산을 하고, 병합하고, 합류하는 고성능의 기능을 제공한다. 


또한, Pandas는 다른 형태의 포멧(CSV, EXCEL, SQL 데이터베이스, HDF5)으로부터 데이터를 가져오거나 내보낼 수 있는 툴을 가지고 있다. 

많은 경우, 이들 포멧들에 있는 데이터는 완벽하거나 전체적으로 구조화되어 있지 않을 것이다. 그런 경우, Pandas는 빠진 데이터를 핸들링하고 지능적으로 데이터를 정렬할 수 있도록 해준다. 

게다가, Pandas는 편리한 Matplotlib 인터페이스를 제공한다.


3. Scikit-learn

Scikit-learn은 Numpy, Scipy와 Matplotlib로 만들어진 머신 러닝 라이브러리이다.

Scikit-learn은 계층화, 회귀, 클러스터링, 차원 감소, 모델 선택과 전처리 같은 데이터 분석에 필요한 단순하고 효과적인 툴을 제공한다.



PS) 라이브러리별로 첨부한 정리 시트를 제공하는 원본 출처 및 원본 시트를 받고자 하시면 아래 링크를 보시기 바랍니다.


https://www.continuum.io/blog/developer-blog/learning-python-data-science-cheat-sheets



다음 편에는 Jupyter Notebook 환경에 대해 알아보도록 할 예정이다.


그럼 이만...



반응형

+ Recent posts