tkawachi Blog

Pythonによるデータ分析入門 レビュー

というわけで Pythonによるデータ分析入門 の献本を頂きました。ありがとうございます。 大学時代の友人たちが翻訳しており、発売を楽しみにしていました。

早速レビューします。

著者 Wes McKinney さん

Wes McKinney さん(@wesmckinn)は、AQRと いう投資運用会社でクオンツとして働いた経歴があり、その時に自分が欲しい ものを作り始めたのが pandas でした。今年、 DataPad というデータ可視化のサービスを行う会社 を San Francisco で立ち上げて CEO としてご活躍中です。

Blog では PyCon での pandas 関連の発表 資料を見ることができます。

紹介されているツール・ライブラリの役割分担

この本で紹介されている分析方法では、Pythonの各ライブラリ・ツールが以下 の役割を担っています。

  • pandas – 高速なデータ分析。内部で NumPy を利用する。
  • NumPy – 高速な行列データ構造
  • matplotlib – 可視化(グラフ作成)
  • IPython – インタラクティブコンソール

各章でそれぞれについて、コード例を元に使い方が紹介されています。 コードは IPython からの入力形式になっており、対話的な利用を想定しているようです。 分析をする際には探索的にやる(何かの結果を得て、次の疑問が湧く、以下ループ) ことが多いので、IPython から対話的に使うのは実際的だと思います。

Python で分析するメリットとデメリット

オープンソースなデータ分析といえば R だと思いますが、 R と比べて Python を使うメリットは、汎用言語であることでしょう。

Rは統計分析処理に特化しており、統計分析関連のことをするには向いています。 その一方で、統計分析の前処理や後処理、その他雑多なことを R でやるのは、不可 能ではありませんがしんどいものがあります。 Rでやるとしんどい部分は、通常、汎用言語やExcelなど他のツールでカバーします。 私が以前翻訳させていただいた RとRubyによるデータ解析入門​ では、タイトルにもあるようにRubyをRと合わせて使う方法を採用しています。

本書で紹介されているツールセットは全て Python 製です。ひとつだけを覚えれば、 他のものを覚えなくて良いというのは大きなメリットです。分析者が欲 しいのはツールではなく分析結果ですから、学習コストは低ければ低いほど良 いのです。 私もそうですが、普段、汎用言語(Java、Ruby、Python、Cなど)を書いている プログラマにとって、Rの学習コストは比較的高いと思います。それはRが言語 として悪いということではなく、汎用言語と違いが大きいからだと思います。

システムのコンポーネントとして利用する場合にも Python であるということ はメリットになります。 Rの場合には Shiny Server などで APIを公開し、HTTP経由で利用する方法が広まりつつありますが、プロセス数の制限など から本気で使うには有償の契約が必要な状況です。 pandas の場合はただの Python なので Django と組み合せて web application を構成したり、他の Python 製フレームワークとの組み合せも自 由自在でしょう。

魅力的に思える pandas ですが、Rの豊富なライブラリ群を どこまで置き換え ることができるのか、私にはわかりません。 あらかじめ分析したい内容が決まっている場合は、pandasと周辺ライブラリで 実現できそうか確認してから取りかかったほうが良いでしょう。

この本が教えてくれること/くれないこと

教えてくれること

  • Python の標準的な分析ツール群である NumPy, pandas, Matplotlib, IPython の使い方

教えてくれないこと

  • 何を分析するべきか
  • 仮説の立て方
  • どの分析手法を選ぶといいか

読むべきか?

この本の優れている点は Python におけるデータ分析プラットフォームを1冊で ひと通り説明しているところでしょう。

以下に該当している人は読むといいと思います。

私もまだ手を動かしながらは読んでないので、これから時間をみてじっくり読みたいと思います。 この手の本は手を動かさないと半分も身につかないですからね。

Comments