『Pythonデータサイエンスハンドブック』は良書(NumPy, pandasほか)

Modified: | Tags: 本・書籍, Python, NumPy, pandas, Matplotlib, scikit-learn

以前紹介した『Python Data Science Handbook』。

その日本語版が発売された。

この本は良い。原著のKindle版を持っているのに買ってしまった。

注意点と良い点を紹介する。

  • 目次・内容
  • 注意点 / こんな人にはオススメできない
    • 英語版はオンラインで無料公開されている
    • Pythonの基礎には触れられていない
  • 良い点 / こんな人にオススメしたい
    • NumPyの説明が(比較的)詳しい
    • 新しいバージョンのpandasに対応
    • Matplotlibの説明が詳しく、サンプルが豊富
    • 機械学習のアルゴリズムへの理解が深まる
  • 類書との比較
    • 『科学技術計算のためのPython入門』
    • 『Pythonによるデータ分析入門』
  • まとめ

目次・内容

正式な書名は『Pythonデータサイエンスハンドブック ――Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習』。

サブタイトルにある、Jupyter(IPython)、NumPy、pandas、Matplotlib、scikit-learnについてそれぞれ1章ずつ解説されている。

  • 1章 IPython:Pythonより優れた Python
  • 2章 NumPyの基礎
  • 3章 pandasを使ったデータ操作
  • 4章 Matplotlibによる可視化
  • 5章 機械学習
    • scikit-learnについてが中心

より詳しい目次はオライリーの公式サイト参照。

注意点 / こんな人にはオススメできない

英語版はオンラインで無料公開されている

英語版(原著)は全文がオンラインで公開されている。図表もそのまま載ってる。

コードだけでなく本文も図表もすべて含まれたJupyter Notebook形式(.ipynb)のサンプルも公開されている。GitHub上で各.ipynbファイルを開くとキレイにレンダリングして表示される。

英語がまったく苦にならない、という人はオンライン版で事足りるかもしれない。

Pythonの基礎には触れられていない

目次からも分かるようにPythonの基礎には一切触れられていない。Pythonの文法は理解していることが前提。

Pythonをゼロから学びたい人にはオススメできない。

良い点 / こんな人にオススメしたい

NumPyの説明が(比較的)詳しい

昨今のPythonの人気の要因の一つがNumPyの存在。機械学習や画像処理などの様々なライブラリがNumPy配列numpy.ndarrayでデータを扱っている。

そんなNumPyについて書かれた本は多い。

機械学習などの書籍では「NumPyの使い方おさらい」みたいな感じで最初の方に書かれているし、Pythonの入門書でも「こんなのもあるよ」的に最後の方で紹介されていたりする。

しかし、NumPyについて 詳しく 書かれた本は少ない

どの本もごくごく基本的なことにサラッと触れているだけのことが多く、そういった本や公式ドキュメントを読んで一応使えてはいるけど「実は細かい部分はあやふや」という人は結構いるのではないかと思う(自分も含めて)。

この『Pythonデータサイエンスハンドブック』はNumPyに1章分を割いている。といっても60ページ強なので、ものすごく詳しいというわけではないが、ブロードキャストやファンシーインデックスにもしっかり触れられていて、基本的な部分はばっちり。

「NumPyの基礎をちゃんと知りたい」という人にオススメ。

新しいバージョンのpandasに対応

日本語のpandas本といえば長らく『Pythonによるデータ分析入門』だったが、原著の出版が2012年と古く、現行バージョンでは非推奨のメソッドが注釈なく紹介されていたり、サンプルコードがエラーで動かないという状況だった。

原著は第2版が2017年に発売されており、日本語の第2版も2018年7月26日に発売された。

『Python for Data Analysis』『Pythonによるデータ分析入門』よりは少ないものの、『Pythonデータサイエンスハンドブック』のpandasの章は100ページ強と結構なボリュームで十分詳しく説明されている。

対応バージョンは明記されていないが、少なくとも2018年5月現在『Pythonによるデータ分析入門』の第1版のようにサンプルコードがエラーだらけで動かないということもない。

『Pythonによるデータ分析入門』との比較は後述。

Matplotlibの説明が詳しく、サンプルが豊富

NumPyやpandas以上によく分からないままなんとなく使われがちなのにも関わらず、ほとんどの本で詳しい説明がされていないのがMatplotlib。Pythonにおけるグラフ作成のデファクトスタンダードなのにクセがすごい。

『Pythonデータサイエンスハンドブック』は日本語のMatplotlib本としては随一の詳しさ。Matplotlibの章も100ページ強にのぼる。

Matplotlibが分かりにくい諸悪の根源である、

  • MATLABスタイルインターフェース
  • オブジェクト指向インターフェース

という2つのインターフェースについてちゃんと説明されているのが良い。

サンプルが豊富で、コードとともに結果のグラフがカラーで掲載されているのも素晴らしい。

seabornにも触れられている。

機械学習のアルゴリズムへの理解が深まる

「機械学習」と題された第5章はscikit-learnの使い方の解説が主。200ページ強。

scikit-learnについて学びたい人はもちろん、機械学習のアルゴリズムそのものを理解したい人にもためになる内容。

サポートベクターマシンやランダムフォレスト、主成分分析などのアルゴリズムについて、アルゴリズムを実現するコードの紹介だけでなく、その必要性や利点・欠点まで解説されている。

具体例がカラーのグラフとともに掲載されているので、各アルゴリズムがどういったものなのかがイメージしやすい。

scikit-learnによる機械学習のより詳しい入門書としては『Pythonではじめる機械学習』もある。

類書との比較

『科学技術計算のためのPython入門』

NumPyやpandas、Matplotlibなどのライブラリについて比較的詳しく書かれた本として『科学技術計算のためのPython入門――開発基礎,必須ライブラリ,高速化』がある。

『Pythonデータサイエンスハンドブック』には無い、『科学技術計算のためのPython入門』ならではの内容が「Pythonの基礎」や「プログラムの高速化」。大規模な計算を行うためのメモリアドレスや実行時間を意識した記述が多い。

NumPyやpandas、Matplotlibについて学びたいのならば『Pythonデータサイエンスハンドブック』のほうがおすすめ。より詳しく、サンプルコードも充実している。

『Pythonによるデータ分析入門』

上述のように、pandasに関しての説明は『Pythonデータサイエンスハンドブック』よりも『Pythonによるデータ分析入門』およびその原著『Python for Data Analysis』のほうが詳しい。

日本語版『Pythonによるデータ分析入門』は内容が古いのがネックだったが、2018年7月26日に第2版が発売された。

『Pythonによるデータ分析入門』に載っていて『Pythonデータサイエンスハンドブック』に載っていないpandas関連の内容としては、ファイルの入出力やpandasのplot()メソッドなどがある。

なお、『Pythonデータサイエンスハンドブック』のpandasの章が物足りないということはなく、基礎的な内容は十分に解説されているといえる。

Matplotlib, scikit-learnについては『Pythonデータサイエンスハンドブック』のほうが詳しい。

pandasについて詳しく学びたいという明確な目的があれば『Pythonによるデータ分析入門』、そうでなければより幅広い内容の『Pythonデータサイエンスハンドブック』がオススメ。

まとめ

NumPy、pandas、Matplotlibはデータ分析や機械学習の分野で欠かせないライブラリであり、多くの関連書籍でさらっと紹介されているものの、詳しく解説した日本語の本は少ない。

とりあえず使えるけど細かい部分がよく分かっていないという人は多いと思う。

『Pythonデータサイエンスハンドブック』はそんなNumPy、pandas、Matplotlibの基礎的な内容が詳しく書かれている本。この先、それらのライブラリを使っていく予定があるのなら手元に置いておくときっと役に立つだろう。

豊富な具体例とともにアルゴリズムが解説された機械学習の章も価値ある内容。

英語版はオンラインで無料で読めるけど、「英語は疲れる…」「やっぱり日本語のほうが安心」という人なら買って損はないと思います。オススメ。

関連カテゴリー

関連記事