いっきのblog

技術とか色々

Jupyter Notebookの後継?Jupyter Labをつかってみた

f:id:kzkohashi:20180730231213p:plain自然言語の処理をする際に、JupyterNotebookと言われるノートブック形式のWebツールを使っている。

jupyter.org

以下のようにPythonのコードを書きながらメモもとれ分析の実行結果(勿論グラフも)もみれるというすぐれものだ。このツールが最初に出たかはわらかないが、Spark(Scala)を動かすためのツールなどもオマージュして作られている。

f:id:kzkohashi:20180726215431p:plain

また、GoogleColaboratoryAWSSageMakerIBMIBM Data Science Experience、MSのMicrosoft Azure Notebooksなどがある。みんな大好きなツールというのはおわかりだろう。

そんなJupyterNotebookに後継っぽいのが出てると聞いて今回は使ってみる。

JuyputerLabについて調べてみる

あまり英語はわからないが、next-generationという単語があるのでおそらく次世代のJupyterなんだろうなと見て取れる。

github.com

開発自体は、2015年ごろから行われていて、今でも割と活発に行われてるっぽい。

f:id:kzkohashi:20180726221140p:plain

JupyterLabをインストールする

さっそくReadme通りにインストールしてみる。

$ pip install jupyterlab
Requirement already satisfied: jupyterlab in /usr/local/anaconda3/lib/python3.6/site-packages
Requirement already satisfied: notebook>=4.3.1 in /usr/local/anaconda3/lib/python3.6/site-packages (from jupyterlab)
Requirement already satisfied: jupyterlab_launcher>=0.4.0 in /usr/local/anaconda3/lib/python3.6/site-packages (from jupyterlab)

よっしゃ!インストールや!ともったら、anacondaPythonをインストールした際にすでに入ってたっぽい。。

If you are using a version of Jupyter Notebook earlier than 5.3, then you must also run the following command after installation to enable the JupyterLab server extension:

jupyterのバージョンが5.3以前の人は引き継がせるためにはコマンドを打つ必要があるらしい。

jupyter --version
4.3.0

4.3なので打つ。

$ jupyter serverextension enable --py jupyterlab --sys-prefix
Enabling: jupyterlab
- Writing config: /usr/local/anaconda3/etc/jupyter
    - Validating...
      jupyterlab  OK

JupyterLabの起動

インストールもおわったので、早速起動してみる。

$ jupyter lab
[I 22:17:21.036 LabApp] JupyterLab alpha preview extension loaded from /usr/local/anaconda3/lib/python3.6/site-packages/jupyterlab
JupyterLab v0.27.0
Known labextensions:
[I 22:17:21.039 LabApp] Running the core application with no additional extensions or settings
[I 22:17:21.046 LabApp] Serving notebooks from local directory: /Users/SayKicho/develop/analysis-practice/word2vec/jupyter
[I 22:17:21.046 LabApp] 0 active kernels
[I 22:17:21.046 LabApp] The Jupyter Notebook is running at: http://localhost:8888/?token=d061cb4b3067b85e8ca007f1ac4cc6130b2cfb908b07a6d5
[I 22:17:21.046 LabApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 22:17:21.049 LabApp]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://localhost:8888/?token=d061cb4b3067b85e8ca007f1ac4cc6130b2cfb908b07a6d5

最初のログインがアニメーションになってて、、次世代を感じる。

f:id:kzkohashi:20180726222139p:plain

Notebookを押してみるといつも通りのJupyterNotebookがでるんだけど、なんと・・同じ画面で複数(Tab)開ける!!!以前だと、複数のノートを開くためにはブラウザ自体で新しいタブを開く必要があったのに、もうすでに次世代を感じている。

f:id:kzkohashi:20180726222233p:plain

ConsoleではPythonの実行がコンソール画面でできるのだが、Notebookでいいじゃんと思ったり思わなかったり・・・。

f:id:kzkohashi:20180726225654j:plain

一番次世代感を感じたのは、ドラッグ&ドロップによるセルの移動だ。こいつは便利だ・・・。使い始めたばかりの時からこの機能はホスィと思っていたので嬉しい。

f:id:kzkohashi:20180726224356j:plain

他にデータファイル(CSVなど)をテーブル表示してくれるなどの便利機能があるっぽいが、そもそもJupyterNotebookですらあまり使い込んでないので、便利そうだなーというくらいにしかまだわからない。

終わりに

分析の作業量が少なくJupyterLabの魅力が伝えきれてないし、悪いところもわかってないが、自分がいいなと思う機能を紹介した。もっと分析の作業が増えた時に良いとこ悪いところに気づくと思うので、その際にはまた追加して書く。

vim Extensionも試してみた。 kzkohashi.hatenablog.com