はじめに

Jupyter Notebookは機械学習・データ解析の分野ではすっかり空気のようなインフラになりました。仮説・実験・考察のサイクルを回しやすいので、科学分野では昔から人気があります。コードと結果が可視化できるという基本機能そのものに、作業ログや手順書・使い方ドキュメントなど、他分野での需要もあります。

夢を膨らませると用途はまだまだ思いつきそうですが、つまり「複数人で同じものを見て、同じ認識をすることができる」というのがJupyter Notebookの良いところです。「あの件、どうだった?」「あ、たぶん大丈夫だと思います」といったあやしげな状態になりにくいです。また、可視化が容易な点も長所です。百聞は一見にしかず。同じ目的を持ったツールとしては、Tableau・DOMO・LookerなどのBIツールと言われるものがあり、どちらもデータ・ドリブンな仕事スタイルを推進することが目的だと思われます。

そう考えると、Jupyter Notebookとは「ごりごりとプログラミング可能なマニアックなBIツール」と言ってもいいかもしれません。とはいえ、IDEではないためプログラミング環境としては貧弱であり、そういう場合はPyCharmなどのほうが便利でしょう。オープンソースなので使うだけなら無料、というのも嬉しい点です。ただし、何らかの形でのコミュニティ貢献が求められます。それはそれで楽しいけどね。

というわけで、データ解析に限らず、ちょっとした用事でも幅広くJupyter Notebookを使っていくと、大変よろしいかと思っています。あのときに何を問題とし、何を考え、何をしたのかを個人レベルでも残しておくことは後でとても役に立ちます。人事考課の時期とかに。

ここが困るよJupyter Notebook

さて、Jupyter Notebookは使いはじめてしばらくすると、ちょっと不便だなぁと思うところがあります。まず、自席のPCなどのローカル環境でJupyter Notebookを使う場合:

また、仮想マシンや計算機を占有してもよい場合など、リモート環境での場合:

これらの問題の大部分は、「Jupyter Notebookが動いている計算機が持つ資源を使う」==「Jupyter Notebook自体と計算資源が同一である」という問題に起因しています。「Jupyterを使うということは、そういうことだ」というたった1つの冴えたやりかたもありますが、不便さは恒星の温度では燃えずに残ります。それこそがイーアになりかねません。

やりたいこと

さて、できるようになるといいな、をまとめると以下のようになります: