かっこいいJupyter Notebookの使い方
こちらはJupyter Advent Calendar 2017の14日目となる記事です。
かっこよくJupyter Notebookを使う方法をいくつか紹介します。
半分、自分のための備忘録となっています。
フォントを変える
JupyterNotebookではデフォルトで等幅フォントが選択されません。
なのでCSSを編集してフォントを変えてやりましょう。
~/.jupyter/custom/custom.css
がなければ作成してください。
.CodeMirror pre, .output pre {
font-family: Fira Code, 源真ゴシック等幅 monospace;
}
僕はこんな感じに書いてます。
ついでに
#ipython_notebook img{
display:block;
background: url(logo.png) no-repeat;
background-size: contain;
width: 60px;
height: 33px;
padding-left: 60px;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
こんな感じで書くと,左上のロゴ部分を変えることができて、
Facetsでデータを見る
ここからは少し実用的な話になっていきます。
Facetsとは、Googleの開発したオープンソースのデータ可視化ツールです。
githubはこちら
プロジェクトページでデモを触ることができるのですが、
インタラクティブに触れる以下のようなもの一瞬で作成できます。
導入方法は、githubのページに書いてあるので英語が読める方はそちらが最新で正確なのですが、
2017-12-15時点では、
- extentionを入れる。
jupyter nbextension install facets-dist/
を実行 - protobufがなければ入れる(condaでjupyterを入れた人は入っているので大丈夫なはず)
- 念のためにどデカイデータも扱えるようにしておく
jupyter notebook --NotebookApp.iopub_data_rate_limit=10000000
で使えます。
tqdmでプログレスバーを表示する
tqdmは、jupyterでなくてもお勧めしたいライブラリです。
これを使うと、めちゃくちゃ簡単に進捗バーを表示することができます。
pip install tqdm
でインストール。
from tqdm import tqdm
で読み込んで、
for n in tqdm(hoge)
のようにイテラブルオブジェクトを囲むだけ。
パラメーターでいろいろカスタマイズもできるので、詳しくはこちらをご覧ください。
また、notebook用の関数も用意されていて、それを使うと
こんな感じになります。
また、notebook用の関数を用いると、並列実行の場合にも対応してくれるので、
こんな感じに並べて表示してくれます。
RISEでスライドを作る
最後は、RISEです。
reveal.jsを用いた、シャレオツでインタラクティブなプレゼンテーション資料を作成することができます。
anacondaを使用している場合、導入は簡単で、
conda install -c damianavila82 rise
のみで利用できます。
pipを利用する場合は、以下のコマンドになります。
jupyter-nbextension install rise --py --sys-prefix
jupyter-nbextension enable rise --py --sys-prefix
RISEを用いると、以下のように、縦横にスライドが遷移して、
またプレゼン中にセルを実行、結果を展開できるプレゼンテーションが作成できます。
まとめ
イケてるデータサイエンティストの8割はjupyterを使ってると言われています。
上に紹介したライブラリを用いて皆さんもカッコよくjupyerを使いこなしましょう。