ysaz (ImanazaS) blog

最近はデータ分析や機械学習が中心。たまに音楽や書評。

Jupyter NotebookからJupyterLabへの移行

Jupyter Notebookにはその前身のIpython Notebook時代からお世話になっています。
そのJupyter Notebookの後継と言われるJupyterLabを今更ながらインストールし、少し試してみました。

JupyterLabとはなんぞや

Jupyterの開発をおこなっているProject Jupyterが2018年2月にBlog記事を投稿し、一般ユーザー向けにJupyterLabを公開したことを発表しました。

blog.jupyter.org

当時、この記事を目にした記憶はあるのですが、

  • どうせまだbeta版だし、ver1.0がリリースされたら使い始めよう
  • 下手に環境をいじって他のパッケージが使えなくなったら困る

といった理由で導入を見送り、大々的にリリースされるのを楽しみに待っていました。

では、なぜ今なのか

上述の通り、首を長くしてJupyterLabの続報を待っていたのですが、待てど暮せどアップデートはなく、バージョンは0.35のまま。
そんな時、Variable Inspectorという拡張機能の使用例が紹介されている下記の記事を見つけ、これは使ってみたい!と思うようになりました。

qiita.com

後でも述べますが、変数や型といった、ノートブック上で扱っているデータに関する情報が常に一覧できる点に強い魅力を感じました。

使ってみた感想

IDEとしての使い勝手が向上

<見た目>
使ってみてまず驚いたのがレイアウトです。
ファイルエクスプローラーが画面の左側に備わっていること、開いているノートブックのタブとしてWebブラウザのタブとは別のものが設けられていること、等。

一点目について、Jupyter Notebookではファイルやフォルダの整理専用にファイル構成が見える画面をノートブックとは別のタブで開いておき、作業しているノートブックと行ったり来たりすることでファイルの管理をしていました。

しかしJupyterLabのファイルエクスプローラーによって、そのようなことをする手間や煩雑さが省かれ、作業効率が向上することが期待されます。

二点目について、Jupyter NotebookのレイアウトではWebブラウザで開いている他のコンテンツ(例えばGmailとかAmazonとか)とノートブックが混在する形となってしまい、

  • タブ数がどんどん増えていくため見辛い
  • 他のコンテンツの中に埋もれてしまったが最後、必要なノートブックを探し出すのが大変

といった課題があると感じていました。

これに対しJupyterLabでは、Webブラウザのタブと異なるタブが存在することで他のコンテンツと混在することはありませんし、上述したファイルエクスプローラーを使えばどのファイルを開いているのかも一目瞭然です。

敢えて使いづらさを述べるとすると、ctrl + tabキーで実行していたタブの切替操作ができなくなったことでしょうか。

JupyterLabのデフォルトでは、ctrl + shift + [(又は ] )でタブ切替ができるので、触っていたらそのうち慣れてくることでしょう。
慣れなければショートカットを編集して別のコマンドに変更してしまえばOKです。


<機能>
コードを書いてみてまず気づいたのが、補完機能です。
Jupyter Notebookでもtabを押すと候補が表示されていたので、その点はJupyterLabも同じです。
追加されたのは、Atomなんかにも備わっている、その項目が関数なのか変数なのか等を表示している機能で、個人的にはかなり見やすい印象を受けました。

また、pythonのメソッドや関数に関する解説を参照する際に使っていたshift + tabコマンドは健在で、Jupyter Notebookでは詳細なドキュメントを閲覧するのにこのショートカットを2回入力する必要があったのですが、JupyterLabでは一発で表示されるような仕様となっており、使い勝手が向上したと感じています。

拡張機能を導入するとより便利に

拡張機能はまだVariable Inspector以外試せていないので、今回触れるのはこの一点です。

インストールはコマンドラインを呼び出して以下を実行するだけで完了。

$ jupyter labextension install @lckr/jupyterlab_variableinspector

Variable Inspectorを作業しているノートブックと別タブで開き、ノートブックのドラッグ&ドロップ機能を使って作業ブックの右隣にでも配置しておけばOK。

f:id:nami3373:20190521202629p:plain
JupyterLab

RStudioを使っていると、現在扱っているデータのサイズや変数といった基本情報を同一画面上で確認することができるので、pythonIDEでも似たようなことができたら便利なのに、と常々思っていました。

AnacondaやRodeoといったIDEでも似たようなことはできるのですが、個人的にはJupyter Notebookの手軽さに勝るものではなく、Variable Inspector的機能は諦めていました。
拡張機能としてJupyterLabに導入できればまさに鬼に金棒。

まとめ

JupyterLab、すごく便利です。
2018年中にリリースされる予定だったver1.0が未だリリースされていないのは気になりますが、気長に待ちつつ、使い倒していきたいと思います!