orangain flavor

じっくりコトコト煮込んだみかん2。知らないことを知りたい。

可視化のお供に「PythonユーザのためのJupyter[実践]入門」

PythonユーザのためのJupyter[実践]入門を頂きました。ありがとうございます。そして出版おめでとうございます。

PythonユーザのためのJupyter[実践]入門

PythonユーザのためのJupyter[実践]入門

まず明らかにしておくと、私は日常的にデータ分析を行っているわけではなく、主にWebプログラミングのためにPythonを使っています。 PyData界隈でJupyter Notebookが広く使われていることは存じていますが、個人的には通常のインタラクティブシェルのほうが手に馴染むので好んで使っています。 このため、本書のメインターゲットではないような気がしますが、その視点からレビューします。

全体の構成

目次を見るとわかりますが、半分以上のページ(4章*1から7章)がMatplotlibとBokehを使った可視化の解説に割かれています。 これらの章はフルカラー印刷で、豊富なグラフの作成例をパラパラとめくって確認できます。

表題のJupyterについても基本的な導入・使い方に加え、設定のカスタマイズやクラウド環境での利用などの解説があり、なんとなく使っていたものをしっかりと手に馴染む道具へと昇華させられると思います。

というわけで、以下のような方にオススメです。

  • MatplotlibやBokehを使って可視化する必要があり、リファレンスを手元に置いておきたい方
  • Jupyter Notebookの使い方をしっかりと理解したい方

以下、印象的だった章に触れます。

第1章 Jupyter Notebookを導入しよう

WindowsmacOSにおけるAnacondaを利用したJupyter Notebookの導入方法が丁寧に解説されています。 condaコマンドを利用した仮想環境の扱い方や、Matplotlibでハマりがちな日本語フォントのインストールについても解説があるので安心です。

conda環境という言葉が説明なく出てくるのがちょっと気になりましたが、仮想環境と同じものという認識でよいのでしょうか。

第2章 Jupyter Notebookの操作を学ぼう

Jupyter Notebookの操作やメニュー、マジックコマンドなどについて一通りの解説があります。 なんとなくJupyter Notebookを起動して使っているだけではイマイチわかりづらい、セルの実行状態やモード、.ipynbファイルの仕組みや自動保存などについて丁寧に説明されています。

Jupyter Notebookを使っていると、キーボードショートカットを使いこなさないと思い通りに編集できないと感じます。 ヘルプからショートカット一覧を参照できるものの、数が多いので、本書ではよく使うものに絞って解説されているのがありがたかったです。

最後にJupyter Notebookの共有方法という話があります。 仮想環境にインストールしたライブラリを前提とした.ipynbファイルを共有して、同じ環境・実行結果を再現するにはどうするのだろうというところが若干気になりました。 .ipynbファイル内にはrequirements.txtに相当する内容は含まれてなさそうですし、コメントに書くのでしょうか。 それとも一般的には実行済みの結果さえ共有できれば気にならないものなのでしょうか。

第4章 Matplotlibでグラフを描画しよう

Matplotlibによるさまざまなグラフの作成方法が解説されています。 実際に意味のあるデータをサンプルとして使用しており、このような分析をするときにはこのグラフが適しているといった説明があるので、わかりやすいです。

第5章の最後に解説がありますが、Matplotlibには手続き型のインターフェイスオブジェクト指向インターフェイスの2種類が用意されています。 サンプルコードを書く人によって使うインターフェイスが異なり、混乱を招くことがあります。 本書ではPythonらしいオブジェクト指向インターフェイスが推奨されていて、こだわりを感じます。

第6章 Bokehでグラフを描画しよう

Bokehはブラウザ上での表示を前提とした可視化ライブラリです。Jupyter Notebookと相性がよく、後発である分Matplotlibよりも洗練されています。

最初にBokehでは高・中・低と3つのレベルのインターフェイスがあるという解説があります。 Matplotlibの章と同様にさまざまなグラフの作成例が収められており、それぞれのグラフについてまず高レベルのインターフェイスで簡単に作成できることを確認した後、中レベルのインターフェイスで細かなカスタマイズを行うという構成になっています。 このため、自分が作成したいグラフのカスタマイズ度合いによって、どのインターフェイスを選択すべきかわかりやすいです。

第9章 クラウド上でJupyter Notebookを使おう

Google Cloud Platform (GCP) とMicrosoft Azure上でJupyter Notebookを利用できるサービスの紹介です。 これらのサービスを使えばローカルで環境を構築する手間すら不要です。特にGCP上で使えるCloud Datalabでは、BigQueryなどのGCP上のサービスと連携できて便利そうです。

Appendix

付録と言いながらも、Jupyter Notebook上でインタラクティブな入力を可能にするipywidgetsや、Jupyter Notebookを発表用のスライドに変換する方法など、興味深いコンテンツが収められています。

最後に

本書の「はじめに」には以下の記述があります。

Jupyter Notebookは人気のツールであり、インターネット上には既に可視化に関する多くのドキュメントやサンプルコードが存在します。しかし私たちはJupyter Notebookを日々利用しながら「Jupyter Notebookの活用とデータ可視化における実践例や知見が集まった場所が少ない」と考えていました。

まさにこの課題を解決する内容になっており、同じような課題を感じている方にはピッタリの書籍と言えます。 これからJupyter Notebookを使った可視化を始める方にとっても、必要な知識を短時間で効率よく学べる一冊です。 興味があれば、ぜひお手にとってみてください。

PythonユーザのためのJupyter[実践]入門

PythonユーザのためのJupyter[実践]入門

*1:正確には3-10節