RとPythonによるデータマイニング

企業でデータ分析などやっています。主にRやPythonによるデータマイニング・機械学習関連の話題と日々の日記やその他備忘録について書いてます。

[Python][データ分析]Pythonによるデータ分析環境

統計分析用ツールとして便利なRですが統計処理に特化しており、プログラム言語としては若干使い難い点もあります。
例えば、Web解析やXMLパースなどはRよりPythonのライブラリの方が機能的に充実していますし、モデル等をPythonで開発するツールに組み込む場合も開発言語と同じ言語で実装した方が効率が良いでしょう。
また、速度的にもRのforはかなり遅くシンンプルなシミュレーションでも結構差が出たりします。

ということでPythonでもデータ分析したい場面が存在しますが、Pythonのリストはデータ分析用のデータ構造ではないため、データハンドリングや集計が非常にやり難いです。
例えば、行・列に対する演算やカテゴリでのグループ化集計といった作業は、非常に面倒な作業になります。
PythonからRを利用するRPy2ライブラリもありますが、PythonとR間でのデータのやり取りが必要になり結構面倒です。

そこで使えるのが、pandasライブラリです。
 http://pandas.pydata.org/

これはPython上でRのようにデータフレームを用いて処理が可能で、GROUP BY集計やapplyによる行・列を対象にした処理、ピボットテーブルまで使うことができるという優れ物です。
HPの記載にもありますが、Rを参考に作ったライブラリらしくデータハンドリング方法がRと非常に似ています。そのためRを使っている人ならすぐ使えるようになると思います。
pandasの使い方について今度まとめる予定です。

これに数値計算ライブラリであるscipyとグラフ表示用のmatplotlibを入れておけば基本的にやりたいことはできるのではないでしょうか。

scipy
 http://www.scipy.org/
matplotlib
 http://matplotlib.org/

あと、Pythonによる機械学習ライブラリとしてはscikit-learnが良いらしいです。
 http://scikit-learn.org/stable/
 http://sucrose.hatenablog.com/entry/2013/05/25/133021
このライブラリはまだ使ったことがないので、今後調査していきたいですね。

取り合えずこの辺が基本でしょうか。
正直分析はRがメインなのでほとんどPythonを用いないのですが、今後の状況次第ではPythonでの分析も選択肢として悪くないかもしれないですね。