Pythonでのデータ分析では、NumPy, pandas, matplotlib, scikit-learnといったライブラリが有名です。これらのライブラリについての学習におすすめな良書として「Pythonデータサイエンスハンドブック」を紹介します。
Contents
Pythonデータサイエンスハンドブック
「Pythonデータサイエンスハンドブック」は、NumPy, pandas, matplotlib, scikit-learnといったAI、機械学習等の分野で非常に良く使用されるPythonのライブラリに関する書籍になっています。
NumPy, pandas, matplotlib, scikit-learnを学ぶための書籍としては非常におすすめできる良書であると思いますので、以下でおすすめできる点などについて紹介していきたいと思います。
目次と概要
本書については、以下のような目次体系となっています。
- 1章:IPython:Pythonより優れたPython
- 2章:NumPyの基礎
- 3章:pandasを使ったデータ操作
- 4章:Matplotlibによる可視化
- 5章:機械学習
流れとしてはまずIPythonの説明から入ります。IPythonとは対話型インタプリタを強力に拡張したものです。Jupyter notebookを使用している方が多いと思いますが、もともとはIPythonのnotebook機能が切り離されてJupyterに組み込まれ、ブラウザ上で使えるようになっているイメージです。
その後は、NumPy, pandas, matplotlib, 機械学習(scikit-learn)といった各ライブラリの説明がされていきます。
Pythonデータサイエンスハンドブックがおすすめできる人/おすすめできない人
おすすめできる人
- NumPy, pandas, matplotlib, scikit-learnを用いたデータサイエンスについて学びたい人
- 上記ライブラリの使い方が分からなくなった時に手元に置いておく本が欲しい人
- NumPyの基礎をしっかりと学びたい人
- matplotlibの可視化のサンプルが欲しい人
- 機械学習アルゴリズムについて内容も理解したい人
本書は、Numpy, pandas, matplotlib, scikit-learnといったデータサイエンスで非常によく使われるPythonライブラリについて学びたい人には非常におすすめできる書籍です。また、既に上記ライブラリをある程度知っている人が、仕事などで分からなくなった時に手元に置いておいて辞書的に使用するのにも適しています。
NumPyの基礎をしっかりと学びたい人
本書は各ライブラリについて詳しく書かれていますが、NumPyに関する説明が他の書籍に比べると比較的詳しいことが特徴かと思います。あまりNumPyの細かな内容に書かれている書籍はない印象です。本書は、NumPyの基礎をしっかりと学びたい人におすすめできます。
本書では、NumPyの配列(ndarray)とPython組み込みのリストの構造の違いも説明されており、それによりなぜNumPyが大量のデータ解析において適しているのかがよく分かります。また、ユニバーサル関数、ブロードキャスト、ファンシーインデックスといったNumPyで特徴的な内容についてもしっかりと説明されているためNumPyに関する基本的な内容は本書でおさえることができます。
matplotlibの可視化サンプルが欲しい人
本書では、matplotlibに関するページが100ページ以上あり、サンプルが非常に豊富にあります。
matplotlibでは「MATLABスタイルのインタフェース」と「オブジェクト指向インタフェース」といったスタイルがあり、少し分かりにくい部分があるのですが、その点についてもきちんと説明がされています。余談ですが、私は大学時代にMATLABを使っていたので、matplotlibを最初に触った時には少し懐かしい気持ちになりました。
matplotlib説明されている本としては、他の書籍よりも豊富に可視化サンプルがありますので、matplotlibの可視化サンプルが欲しい人には非常におすすめできます。
機械学習アルゴリズムについて内容も理解したい人
本書で紹介されているのは、scikit-learnという機械学習ライブラリです。scikit-learnのデータ表現やAPI(fit(), predict(), transform())といった構成と使うための手順等がしっかり説明されています。
詳細内容としては、「ナイーブベイズ分類」「線形回帰」「サポートベクターマシン」「決定木、ランダムフォレスト」「主成分分析」「多様体分析」「k平均法クラスタリング」「ガウス混合モデル」「カーネル密度推定」といった機械学習でよく出てくる手法について幅広くscikit-learnでの使用方法が紹介されています。
また、ただ各手法を説明するだけではなく、「機械学習とは何か」「モデル検証に関する考え方」「特徴量エンジニアリング」といった機械学習のベースとなる考え方についても説明されているページもあり、scikit-learnについて学びたいというだけでなく、機械学習についてしっかり理解したい人にもお勧めできます。
pandasについても十分な内容
pandasについても100ページ以上のボリュームがあり、基本的な内容を理解するには十分な内容となっています。
pandasについて詳しく学びたい場合には、「Pythonによるデータ分析入門」の方がファイル入出力等、より詳しく説明されていますので、pandasについて詳しく学びたいという人は以下の書籍の方が良いかもしれません。
「Pythonデータサイエンスハンドブック」にpandasに関する情報が少ないと言っているわけではない点にはご注意ください。Pythonデータサイエンスハンドブックでもpandasの基本的な内容は十分にカバーされています。
NumPy, matplotlib, scikit-learnといったライブラリを含めて全体的なデータサイエンスについて学びたい方には「Pythonデータサイエンスハンドブック」の方がどちらかというとおすすめかと思います。
おすすめできない人
オンラインの英語版で十分な人
実は本書の英語版はオンラインで無料公開されています。本文の他、コードや図表も含まれています。また、Githubにソースも公開されているので、ソースの確認も簡単にできます。
Github: https://github.com/jakevdp/PythonDataScienceHandbook
英語が得意で問題ない方は、オンライン版でも十分ですので書籍自体を購入する必要はないかもしれません。私も読む分にはまぁ何とかなるので最初は英語版を見ていましたが、それほど英語スキルが高いわけではなく、やはり日本語の方が圧倒的に調べたりするのが早いので、日本語版を購入して手元に置いておいておき、分からなくなったらすぐ手に取るという感じの使い方をしています。
Pythonの基礎も含めて学びたい人
本書は、Pythonについては理解していることが前提の書籍になっています。Pythonの基本構文等に関する説明の章があるわけではないため、Pythonを全く知らない人にはおすすめできません。
Pythonの基本から勉強したい人は以下のような書籍で学習してから、Pythonデータサイエンスハンドブックを読むことをお勧めします。
まとめ
データ分析や機械学習といったデータサイエンスの分野では、NumPy, pandas, matplotlib, scikit-learnといったライブラリが欠かせないものとなっています。
他の機械学習等の書籍では、簡単に触れられている程度である事が多い中で「Pythonデータサイエンスハンドブック」は各ライブラリの基本的なところからしっかりと説明がされている書籍です。特にNumPyについては他書籍に比べて詳しく説明されていると思います。
もちろんライブラリを使えるというのが実務では大事なことですが、各ライブラリの本質を理解するということはスキル向上に非常に大事であり、本書は助けになってくれると思います。
英語版はWeb上で参照できるので英語が得意な人は書籍を買う必要はないかもしれません。日本語の方が良いという人にとっては非常におすすめできる書籍なので、是非参考にしてみて欲しいと思います。