この記事について
Pythonでデータ分析を行う際に役立つセットアップを紹介します。
データ分析に興味がある方はこちらも合わせてどうぞ
データサイエンティストに興味があるならまずこの辺りを見ておきな、って文献・動画のまとめ(随時追加) - Qiita
実行環境
Jupyter(旧iPython Notebook)
http://jupyter.org/
インタラクティブ(対話的)なコード実行のための環境
データ分析に非常に適していて、慣れると他のIDEなどでは分析ができなくなる。
任意に分けたコードブロックごとに実行し、結果を都度表示出来るほか、
・グラフのインライン表示
・数式の記述(Latex)
・マークダウン方式の文章記載
などの機能を備えており、模索しながらの分析作業や、結果の共有・保管などに非常に適する。
iPythonで文章と図表を描くことで論文のような形式で書くことも出来るため、科学術業界でも多用されている。
複数人で使うためのjupyterhubというプロダクトもある。
https://github.com/jupyter/jupyterhub
その他の選択肢
Google Cloud Datalab
https://cloud.google.com/datalab/?hl=ja
JupyterをベースにしたGoogle Cloudのデータ探索用フロントエンド
参考 : Python使いのためのBigQuery連携 - Qiita
beaker notebook
http://beakernotebook.com/
Apache Zeppelin
https://zeppelin.incubator.apache.org/
ライブラリ
数値計算、データ操作
Numpy
http://www.numpy.org/
Pythonの組み込みのListに比べて、配列同士の演算や多次元配列(行列計算)などの扱いに
長けたオブジェクトを提供するライブラリ
Numpyの配列(Numpy Array)の集合体が次で紹介するPandasのデータフレームオブジェクトになる
NumpyとPandasの使い方についてはこの本に詳しい
Pythonによるデータ分析入門――NumPy、pandasを使ったデータ処理
http://www.oreilly.co.jp/books/9784873116556/
Pandas
http://pandas.pydata.org/
PythonでデータをRDBっぽい形(データフレーム)で扱うためのライブラリ
データ分析のスタンダードになっており、ScikilearnやMatplotlibも
Pandasオブジェクトとの連携がスムーズにされている
解説記事
Python Pandasでのデータ操作の初歩まとめ
http://qiita.com/hik0107/items/d991cc44c2d1778bb82e
Scipy
http://docs.scipy.org/doc/scipy/reference/
科学計算・技術計算のためのライブラリ
特殊関数、最適化、統計処理などの各種手法が含まれている(かなり数多い)
関数近似をするためのscipy.optimizeの例(qiita記事)
Pythonで非線形関数モデリング
http://qiita.com/hik0107/items/9bdc236600635a0e61e8
データ連携
csv
http://docs.python.jp/2/library/csv.html#module-csv
csvの読み込みや処理、操作などに便利なライブラリ
csvファイルのリーダーやライターを提供する
db接続
MySQL, PostgreSQL、BigQuery、SQLiteなどの各種DBとの接続用のライブラリが存在する
※ここで紹介するコネクターは複数存在します。
MySQL : MySQL-Connector-Python
https://pypi.python.org/pypi/mysql-connector-python/
PostgreSQL : Pycopg2
http://initd.org/psycopg/download/
BigQuery : BigQuery-Python
https://github.com/tylertreat/BigQuery-Python
もしくはPandasを使った方法はこちらを参照
http://qiita.com/hik0107/items/3944ccea04371331c3b4
SQLite : SQLite3(組み込みのためインストールは不要)
http://docs.python.jp/2/library/sqlite3.html
簡易分析
pivottablejs
https://pypi.python.org/pypi/pivottablejs
Pandasオブジェクトを受け取って、Excelのピボットテーブルのような操作を可能にするライブラリ
簡単な集計やデータの確認をしたい時に重宝する
collections(組み込み関数)
http://docs.python.jp/2/library/collections.html
Count Distinct的な使い方が出来る"Counter"やデータフレームの簡易版的なオブジェクトが設計可能な"namedtuple"などの関数が入っているモジュール
モデリング(機械学習)
scikitlearn
http://scikit-learn.org/
分類や予測のためのモデルが詰まった機械学習用パッケージ
こちらもPythonでのデータ分析ではほぼデファクトと言っても良い地位を得ている
グラフ描画
matplotlib (+ seaborn)
http://matplotlib.org/
http://stanford.edu/~mwaskom/software/seaborn/
matplotlibは事実上Pythonのデータビジュアライズのデファクトとなっているツールで、
seabornはそのラッパー的な存在で、より簡単にキレイなグラフが描けるようになる
折れ線グラフ、棒グラフ、ヒストグラム、散布図などはもちろん、様々なグラフが存在する
Qiitaの記事
pythonで美しいグラフ描画 -seabornを使えばデータ分析と可視化が捗る
http://qiita.com/hik0107/items/3dc541158fceb3156ee0
その他の選択肢
いずれも高機能なグラフ化ツール
matplotlibが気に入らない人、満足できない人、元R使いなどの人はこちらもどうぞ
・Bokeh http://bokeh.pydata.org/en/latest/
・ggplot(Rのggplogt2というライブラリのPython版) http://ggplot.yhathq.com/
・plotly https://plot.ly/
その他
計算高速化:Cython
http://cython.org/
一部のPythonコードをCコードにコンパイルして高速実行する
計算量が多くスピードがネックになる時に有用
記号計算:sympy
日付の操作と演算:datetime
こちらの記事も
そろそろデータサイエンティストの定義とスキルセットについて本気で考えてみる
http://qiita.com/hik0107/items/f9bf14a7575d5c885a16