jupyter notebook을 사용할 때 활용할만한 꿀팁들을 공유하려고 한다.
1. 테마 변경
pip install jupyterthemes
사용 가능한 테마 리스트는
chesterish
grade3
gruvboxd
gruvboxl
monokai
oceans16
onedork
solarizedd
solarized1 가 있다.
먼저 설치를 해준 후에 터미널 환경에서 다음과 같이 입력한다.
jt -l #가능한 테마 리스트jt -t <테마 이름> -T
# -T 를 안붙이면 툴바가 보이지 않습니다.jt- r #default css로 복귀
시력을 보호할 목적이라면 어두운 테마를 활용하는 것을 추천한다. 개인적으로 나는 코드 작성을 위한 목적 뿐만 아니라 markdown도 jupyter notebook에서 자주 활용하기에 밝지만 기존 ui와는 다른 ‘grade3’ 테마를 적용시켰다.
2. 주피터 확장탭
NBextensions tab으로 주피터에서 편리하게 사용할 수 있는 확장 기능이다.
설치 방법
pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install --user
설치하면 다음과 같이 nbextensions config라는 버튼이 생기는 것을 확인할 수 있다.
클릭 후에 여기서 필요한 확장탭을 사용하면 되는데 몇 가지 기능을 추천해보고자 한다.
(1) hinterland
탭을 누르지 않아도 코드를 자동완성 시켜줌
(2) Snippets
저장된 코드 예시를 불러올 수 있다. 특히 Matplotlib의 chart 같은 경우는 파라미터나 입력 값을 외우기 힘든 경우가 많았는데 유용하게 쓰일 수 있을 것 같다.
3. Split Cells Notebook
보이는 그대로 cell을 2개의 화면으로 split 해주는 기능이다. 유용하기(?) 보다는 신기해서..!
4. Table of contents
내가 마크다운 해놓은 heading 값에 맞추어 목차를 만들어준다. 스터디나 외부 공유할 자료가 있다면 다음과 같이 정리하면 참 편할 것 같음.
5. Collapsible Headings
특정 heading 아래에 있는 코드 및 마크다운을 숨기는 기능이다. 코드나 jupyter notebook의 길이가 길어질 경우 유용할 듯 싶다.
6. ExececuteTime
코드 실행시간을 알려주는 기능이다. 모델 학습할 때 시간 측정하기에 참 좋을듯. 기존에는 time 메소드를 사용했는데 더 편리하게 적용할 수 있을 것 같다.
7. Autopep8 . Code prettify
이 부분은 다른 사람들이 만든 코드를 내 jupyter notebook에 붙여넣을 때 항상 코드가 정리가 되어있지 않아서 수동으로 해주었는데 이러한 copy and paste의 단점을 잘 반영한 기능인 것 같다.
8. codefolding
코드를 클래스나 def 정의 함수 단위로 묶어서 폴딩할 수 있도록 하는 기능이다. 코드가 길어질 수록 유용할 것 같다. 나같은 경우는 파이썬과 presto를 connect해서 쿼리를 파이썬에서 날리는 경우가 많은데 쿼리가 길어질 경우 사용하면 참 편리할 것 같다.
3. 데이터 프레임 관련 팁
기본적으로 판다스에서 제공하는 데이터프레임 형태는 좋지만 직관적이고 인터렉티브 하지 않다는 단점이 있다. 하지만 Qgrid를 사용하면 그 단점은 극복할 수 있을 것 같다.
Qgrid
- 데이터프레임을 인터렉티브하게 바꾸어주는 기능이다.
pip install qgrid
jupyter nbextension enable --py --sys-prefix qgrid
터미널 환경에서 설치하면 된다.
import qgridqgrid_widget = qgrid.show_grid(df,show_toolbar=True)
qgrid_widget
개인적으로 가장 신세계였던 기능이다. 주피터 노트북 환경에서 인터렉티브하게 EDA가 가능하게 하며, 전체화면으로 더욱 편리하게 볼 수 있다. 또한 각 변수들의 값들을 필터링할 수 있다..! (마치 엑셀과 같은..!)
4. 슬라이드 쇼
jupyter notebook을 협업 도구로 사용하는 조직같은 경우 코드를 pdf로 옮길 필요 없이 바로 slide 기능을 활용하면 된다.
[view]-[cell toolbar]-[slideshow]에서 설정할 수 있으며
jupyter nbconvert *.ipynb --to slides --post serve
터미널 환경에서 다음과 같이 설치해주면 된다.
다음과 같이 적용할 수 있다.
또한 RISE 플러그인을 통해서도 적용할 수 있다.
pip install RISE
설치 후에
jupyter-nbextension enable rise --py --sys-prefix
터미널 환경에서 다음과 같이 입력해주면 nbextension 창에서 확인할 수 있다.
툴바에서 다음과 같은 버튼을 클릭하면 확인 가능하며,
더욱 인터렉티브하게 슬라이드쇼를 꾸밀 수 있다.