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

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

その日本語版が発売された。 Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習Jake VanderPlas オライリージャパン 売り上げランキング: 1,319Amazon.co.jpで詳細を見る この本は良い。原著の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についてが中心

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

O'Reilly Japan - Pythonデータサイエンスハンドブック

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

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

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

Python Data Science Handbook | Python Data Science Handbook

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

jakevdp/PythonDataScienceHandbook: Python Data Science Handbook: full text in Jupyter Notebooks

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

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によるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理Wes McKinney オライリージャパン 売り上げランキング: 2,909Amazon.co.jpで詳細を見る 『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入門 ――開発基礎、必須ライブラリ、高速化中久喜 健司 技術評論社 売り上げランキング: 14,390Amazon.co.jpで詳細を見る 『Pythonデータサイエンスハンドブック』には無い、『科学技術計算のためのPython入門』ならではの内容が「Pythonの基礎」や「プログラムの高速化」。大規模な計算を行うためのメモリアドレスや実行時間を意識した記述が多い。 NumPyやpandas、Matplotlibについて学びたいのならば『Pythonデータサイエンスハンドブック』のほうがおすすめ。より詳しく、サンプルコードも充実しています。

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

上述のように、pandasに関しての説明は『Pythonデータサイエンスハンドブック』よりも『Pythonによるデータ分析入門』およびその原著『Python for Data Analysis』のほうが詳しい。 日本語版『Pythonによるデータ分析入門』は内容が古いのがネックだったが、2018年7月26日に第2版が発売された。 Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理Wes McKinney オライリージャパン 売り上げランキング: 2,909Amazon.co.jpで詳細を見る 『Pythonによるデータ分析入門』に載っていて『Pythonデータサイエンスハンドブック』に載っていないpandas関連の内容としては、ファイルの入出力やpandasのplot()メソッドなどがあります。

なお、『Pythonデータサイエンスハンドブック』のpandasの章が物足りないということはなく、基礎的な内容は十分に解説されているといえる。 Matplotlib, scikit-learnについては『Pythonデータサイエンスハンドブック』のほうが詳しい。 pandasについて詳しく学びたいという明確な目的があれば『Pythonによるデータ分析入門』、そうでなければより幅広い内容の『Pythonデータサイエンスハンドブック』がオススメ。

まとめ

NumPy、pandas、Matplotlibはデータ分析や機械学習の分野で欠かせないライブラリであり、多くの関連書籍でさらっと紹介されているものの、詳しく解説した日本語の本は少ない。 とりあえず使えるけど細かい部分がよく分かっていないという人は多いと思います。 『Pythonデータサイエンスハンドブック』はそんなNumPy、pandas、Matplotlibの基礎的な内容が詳しく書かれている本。この先、それらのライブラリを使っていく予定があるのなら手元に置いておくときっと役に立つだろう。 豊富な具体例とともにアルゴリズムが解説された機械学習の章も価値ある内容。 英語版はオンラインで無料で読めるけど、「英語は疲れる…」「やっぱり日本語のほうが安心」という人なら買って損はないと思います。オススメ。 Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習Jake VanderPlas オライリージャパン 売り上げランキング: 1,319Amazon.co.jpで詳細を見る

シェア

関連カテゴリー

本・書籍 Python NumPy pandas Matplotlib scikit-learn

『Python Data Science Handbook』(英語の無料オンライン版あり) pandas参考書『Python for Data Analysis, 2nd Edition』 pandas参考書『Pythonによるデータ分析入門』の注意点 Pythonで正規化・標準化(リスト、NumPy配列、pandas.DataFrame) Python, pandas, seabornでペアプロット図(散布図行列)を作成 pandasのplotメソッドでグラフを作成しデータを可視化 Pythonのリストと配列とnumpy.ndarrayの違いと使い分け pandas, Matplotlib(mpl_finance)でローソク足チャートを作成 pandasからNumPyの関数などを使う方法(pd.np) Pythonでメソッドチェーンを改行して書く 『Pythonではじめる機械学習』は機械学習を始めたい人に最適な良書 pandas.DataFrame, SeriesとNumPy配列ndarrayを相互に変換 Python, pandas, seabornでヒートマップを作成 NumPy配列ndarrayの行・列を任意の順番に並べ替え、選択(抽出) pandas.DataFrameをGroupByでグルーピングし統計量を算出

Last Updated: 6/26/2019, 10:34:03 PM