「データ・サイエンスのプログラミング言語はRからPythonに置き換わる」という記事を見てやってみた
データ・サイエンスといえば、Rと思ってたんですけど Pythonでも増えてきてる?ということで、データサイエンス初心者ですが、やってみました!
まずは準備
python自体も初心者なので、環境づくりからですね。 今回はcentosを使ってます。
そして、今回は http://lambdalisue.hatenablog.com/entry/2013/09/23/130945 を参考に準備、解析処理入門
パッケージインストール
まずは、pipと呼ばれる、パッケージ管理
$ sudo su $ yum -y install python-setuptools $ easy_install pip
pipパッケージ更新と、データ解析に必要なパッケージインストール
//最新バージョンにする $ pip install -U pip $ yum install python-numpy python-scipy python-matplotlib pygtk2 $ pip install mpltools
とりあえず、データがないことには始まらないので 解析用サンプルデータ取得
wget https://gist.github.com/lambdalisue/6666056/raw/ac5789a3da1bb2c2b486caa3374017ed61355c57/raw.dat
中身は
601.0000 54.1752 602.0000 51.0315 603.0000 48.2909 604.0000 45.3684 605.0000 42.6365 606.0000 40.0859 607.0000 37.7295 608.0000 35.4361 609.0000 33.4751 ......
では、解析用スクリプト作成、サンプル通りに
#!/usr/bin/env python
# vim: set fileencoding=utf-8 :
#
# Author: shinofara
# Date: 2013-12-03
#
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as pl
# データの読み込み(スペースなどで自動的に区切られる)
data = np.loadtxt("raw.dat")
# 読み込んだデータは行列として表現されているので
# 一列目をX、二列目をYとして取り出す。
X = data[:,0]
Y = data[:,1]
# X, Yデータを描画
pl.plot(X, Y)
# グラフのスーパータイトルを指定(オプション)
# 複数グラフを表示した際などに総括タイトルとして使用することが多い
pl.suptitle("Fluorescence intensity")
# グラフのタイトルを指定(オプション)
pl.title("Fluorescence intensity of ECFP")
# X軸, Y軸のラベルを設定(オプション)
# 必要であればLaTeX的な指定も$で囲むことで可能。
# 例えば文字中に$\AA$とするとオングストロームの記号を表示可能。
pl.xlabel("Wavelength [nm]")
pl.ylabel("Intensity")
# X軸, Y軸の範囲を指定(オプション)
# 他のグラフと合わせる場合などに便利だが指定しない場合は自動的に見やすい
# 範囲となるため理由がない限り指定しないほうが多い
pl.xlim(450, 650)
pl.ylim(0, 5000)
# グラフにグリッドを表示(オプション)
pl.grid()
# グラフを表示 or 保存
#pl.show() # 表示
pl.savefig("test.png") # 保存(svg, epsなどにも対応)
準備ができたので、実行
$ python test.py
正常に処理が完了したら、test.pngができる。 そのファイルを見てみると

結果こんなグラフが出来た。
おお、これは楽しそう。 いろいろ勉強してみるか