SE Can't Code

A Tokyo based Software Engineer. Not System Engineer :(

次世代データ解析IDE, JupyterLabをインストール.

データ解析でよく利用されるJupyterNotebookでは、後継であるJupyterLabというIDEの開発が進んでいる。今回はそのJupyterLabのインストールと良さ気な機能を少し書こうと思う。

JupyterNotebookとは

JupyterNotebookはブラウザ上でPythonプログラミングが簡単に出来るツールであり、主にデータ解析の業務で利用されている。iPythonの旨味であるインタラクティブな処理の実行を行い、matplotlibのinline表示をすれば、plot結果をブラウザに埋め込まれた形で確認することが出来るので、非常にスピード感のあるコーディングが可能になる。ちょっとした検証コードや書捨てのコードを書く際には威力を発揮するツールだろう。特徴を簡単に羅列すると下記になる。

  • インタラクティブにコードを実行できる
  • Plotをinlineに埋め込められるため、可視化に優れている
  • Python2系、3系、また仮想環境への切り替えが簡単
  • Pythonだけでなく、RやScalaといった多言語との連携にも対応している
  • セルモードを切り替えるだけでmarkdownとコードを共存させることができる
  • プレゼンテーションモードにすれば、スライドが自動生成される

などなど、パッと思いつくだけでもこれだけの特徴が挙げられる。特に2系、3系のカーネル切り替えやmarkdownが書ける、といったところは仕事で非常にお世話になっていてありがたい。プレゼンテーションモードを使って研修教材を作ったりしたこともある。もうこれがないと基本的に仕事にならない、と言っても過言ではない。他のデータ解析の現場も同じなんじゃないかと思う。


後継のJupyterLabとは

そんなJupyterNotebookの次世代版が"JupyterLab"である。現在、絶賛開発中のIDEであるが、JupyterNotebookをさらに使いやすくしたUI改善が多く実装されている。特徴として下記が挙げられる。

  • JupyterNotebookはブラウザ上のIDEである
  • Building BlockなJupyterNotebookに比べて、柔軟性のあるUIを実現
  • npm/webpackをベースとしたJSで開発されているため、プラグイン開発が簡単になった
  • 各種Inspector機能がついた

主にUIの開発が進んだ印象である。より詳しくは、Scipyカンファレンスの動画を見ると良い。

www.youtube.com


JupyterLabのインストール

JupyerLabはJupyterNotebook4.2.0以上である必要があるので、バージョンがそれ以下の場合は事前にupgradeを行う。JupyterLab自体はpipを使えば一発でインストールされる。

$ pip install jupyterlab
$ jupyter serverextension enable —sys-prefix  
$ jupyterlab

データ解析者御用達のAnacondaの場合はcondaを叩く。

$ conda  install -c condaforge jupyterlab

インストールが完了すると、ローカル環境のブラウザ上でJupyterLabが立ち上がる。

f:id:fixxman:20161126145617p:plain


JupyterLabで出来ること

JupyterNotebookとの一番の進歩はブラウザの一画面内での画面分割が可能になったことだろう。JupyterNotebook上でいくつかのノートブックを開いて作業をする場合、ブラウザのタブ毎を行き来しながら作業をせざるを得なかったが、JupyterLabではマウスで画面内のタブをクリックして移動させるだけで、簡単に画面を分割することが可能になる。たとえば以下のように、Console画面を開きながら、iPythonのインタラクティブな実行環境でコードを実行しながら、ターミナル画面までも操作することができる。

f:id:fixxman:20161126150241p:plain

また、見てわかると思うが、サイドバーとしてディレクトリも操作できるようになっており、従来のIDEに近づいた設計となっているのがわかる。(これはかなり嬉しい)


さらに個人的に良いなと思ったところとしては、csvファイルを画面にクリック&ドロップしてあげるだけで、綺麗なTable形式でcsvの中身を表示してくれる機能がある。わざわざPandasのread_csvを叩いてheadで表示して中身を確認する、なんて手間が不要になるところは、小さい話だが個人的には嬉しい。

f:id:fixxman:20161126150807p:plain



このようにUIに大きく変更が加えられているJupyterLabであるが、スピード感を持ってデータとにらめっこして解析・検証を行うデータ解析者にとっては割と嬉しいIDEとなるんじゃないだろうか。個人的には単純にオシャレなので会社で使ってやろうとニヤニヤしているだけなのだが、ファイル操作やIDE内のタブの使い勝手といった面は普通に嬉しいな、と思う。あと凄く個人的な願いなのだが、iPythonLab上で書いたコードをpyファイルにnbconvertした時の出力がもう少し人の手が入らないように正規化されて出てきてくれるととても嬉しい。ここらへんって実はもう改善されていたりするんだろうか。

Remove all ads