データサイエンティストがJupyter notebookを愛する10の理由

入門/解説

1.データサイエンティストがJupyter notebookを愛する10の理由まとめ

・PythonやR、Juliaを気軽に試せるJupyter notebookの紹介
・気軽に試せる、一つにまとめられる、先達の結果を借りれると本当のノートのごとき使い勝手
・PythonやR、Juliaを試してみたいと考えている人はまずはJupyter notebooksで試すと良いかも

2.Jupyter notebookの歴史

以下、hub.packtpub.comより「10 reasons why data scientists love Jupyter notebooks」の意訳です。元記事の投稿は2018年4月4日、Aarthi Kumaraswamyさんによる投稿です。(2020年1月追記:Jupyter notebookとPythonに興味を持っている方でしたらnbdevもチェックした方が良いかもしれません。)

過去20年間、Pythonは科学計算やデータ分析用のプログラミング言語として人気を獲得してきました。現在、Pythonが普及している主な理由の1つは、研究開発の場とビジネスの場の双方で使用されており豊富な科学計算機能を提供している事です。これにより、研究開発した製品をビジネスプロダクトへ転換する事がとても容易になります。

IPythonはもともとはPythonが提供するデフォルトの対話型コンソールを改善し、科学者に使いやすいものにすることを意図したPythonライブラリです。 2011年、IPythonの最初のリリースから10年後に、IPython Notebookが発明されました。このWebベースのIPythonインターフェイスは、コード、テキスト、数式、インラインプロット、インタラクティブフィギュア、ウィジェット、グラフィカルインターフェイス、およびその他のリッチメディアを、共有可能な独立したWebページにまとめる事ができました。このプラットフォームは、インタラクティブな科学計算とデータ分析に理想的な環境を提供します。 IPythonは、研究者、エンジニア、データ科学者、教師、学生にとって不可欠なものとなりました。

数年のうちに、IPythonは科学技術コミュニティの間で絶大な人気を博しました。Notebookは、Pythonに留まらずますます多くのプログラミング言語をサポートし始めました。 2014年に、IPython開発者はNotebookの実装を改善し、プログラミング言語に依存しないように設計しなおしたJupyterプロジェクトを発表しました。プロジェクトの名前は、Notebookでサポートされている主な科学計算言語の3つ、Julia、Python、およびRの重要性を反映しています。

今日、Jupyterは、いくつかの代替Notebookインターフェース(JupyterLab、nteract、Hydrogenなど)、対話型視覚化ライブラリー、Notebookと互換性のあるオーサリングツールを含むエコシステムです。 JupyterにはJupyterConという名前の会議があります。このプロジェクトは、アルフレッド・P.スローン財団とゴードン・アンド・ベティ・ムーア財団のほか、いくつかの企業からの資金提供を受けました。

Jupyter Notebookが生んだ豊かな資産と、開発者に提供されるより豊かなエコシステム以外にも、あなたがJupyter Notebookをまだ使用していない場合は、次のデータサイエンスプロジェクトにJupyter Notebookを使用すべき10つの理由があります。

1.オールインワンプレイス
Jupyter Notebookは、コード、リッチテキスト、画像、動画、アニメーション、数学的方程式、プロット、地図、インタラクティブな図やウィジェット、グラフィカルユーザインターフェースを1つのドキュメントにまとめる事ができるWebベースのインタラクティブな環境です。

2.簡単に共有
Jupyter Notebookは構造化テキストファイル(JSON形式)として保存され、簡単に共有できます。

3.変換が簡単
Jupyterには、Jupyter NotebookをHTMLやPDFなどの他のフォーマットに変換する特別なツールnbconvertが付属しています。もう1つのオンラインツールnbviewerを使うと、Jupyter Notebookをブラウザに直接レンダリングすることができます。

4.言語に依存しない
Jupyterのアーキテクチャは言語に依存しません。クライアントとカーネル間を分離させた事により、任意の言語でカーネルを書くことができます。

5.カーネルラッパーの作成が簡単
Jupyterは、Pythonでラップできるカーネル言語用の軽量インターフェースを提供します。ラッパーカーネルを使うと、コード補完とコード検査のためのオプションを簡単に実装できます。

6.簡単にカスタマイズできます
貴方が望むなら、Jupyter Notebookを完全にカスタマイズする事ができます。(コンソールなどの別のクライアントアプリケーションにする事もできます)

7.カスタムマジックコマンドによる拡張
カスタムマジックコマンドでIPython拡張を作成し、インタラクティブコンピューティングをさらに容易にします。サードパーティの拡張機能を組み込み多くのマジックコマンドが存在します。たとえば、Cythonコードをノートブックに直接書き込むことを可能にする%%cython magic記法があります。

8.試作品をストレスフリーに複製できる
Jupyter Notebookは、効率的に複写できるため、インタラクティブなコンピューティング実験を容易に行えます。あなたの仕事の詳細な記録し、維持することができます。Jupyter Notebookの使いやすさは、バックアップや複製について心配する必要がないことを意味します。インタラクティブな作業をノートブックで行い、githubなどのバージョン管理ツール配下に置いて定期的にコミットしてください。独立した再利用可能なコンポーネントにするためにコードをリファクタリングすることも忘れないでください。

9.効果的な学習ツール
Jupyter Notebookは、科学の研究とデータ分析のツールであるだけでなく、ティーチングにも使える素晴らしいツールです。たとえば、IPython Blocksは、あなたやあなたの生徒がカラフルなブロックのグリッドを作成するためのライブラリです。

10.インタラクティブなコードとデータの探索
ipywidgetsパッケージは、インタラクティブにコードとデータを探索するための多くの一般的なユーザインタフェースコントロールを提供します。

貴方はCyrille Rossantの最新の本、IPython Cookbook、Second Editionからの抜粋を楽しみました。この本は、最新のIPython / Jupyter機能から最先端のトリックまで、高性能な科学計算とデータ解析のための100以上のレシピを提供し、より速く、より速いコードを書くのに役立ちます。

3.データサイエンティストがJupyter notebookを愛する10の理由感想

表題にツラれて翻訳してみたら本の宣伝ぽかったと言うオチ。10個の理由はやや特殊なものも含まれているような気もしますが、Jupyter Notebookは本当に革新的で素晴らしいと思います。

私があげるとしたら、Jupyter Notebookは

1)環境セットアップに苦しむ必要がない点がとてもすばらしい。

2)気軽にコードを試せる

3)ブラウザ上で全て完結できる

4)コードを断片的に分けて実行できる

5)コードを途中から再実行させる事もできる

6)画像やグラフの表示などグラフィカルな部分のサポートもバッチリ

7)必要なモジュールをインストールさせる事も出来てしまう

8)ブロック単位でコードとコメントを混在させる事が出来るのでどこまで何をやったか綺麗に整理できる

9)ファイルにまとめれるので共有やVersion管理が楽

10)先達の作ったノートブックをそのまま簡単に拝借できる

などなどがおすすめポイントです。

Pythonを学習する際は、IDE(総合開発環境)が好きな人はAnacondaのSpyder、もっと気軽に試したい人はJupyter Notebook、本格的にやりこみたくなったら素のPython+好みのエディター+環境切り替えツール、って感じでしょうか。環境構築に色々苦しむよりさっさと学習を開始して不足や気になる所が出たら乗り換えるのが良いと思います。環境構築はハマると本当に大変なので。

4.データサイエンティストがJupyter notebookを愛する10の理由関連リンク

1)hub.packtpub.com
10 reasons why data scientists love Jupyter notebooks

2)jupyter.org
Try Jupyter

コメント

タイトルとURLをコピーしました