Pythonを使ってすぐに(30分で)数値演算!! できない人への説明 | Windowsでnumpy+scipy+matplotlib
Pythonを使ってすぐに数値演算と思ってもできない人への説明 | numpy+scipy+matplotlib
こんにちわ。
ふぃふぃです。
ふと、数値演算をしたくなったりします。
「僕はどうしてもpythonでやりたい!!」
そんな人のために、windowsで数値演算環境を整える方法をまとめました。
30分あればできるはずです。
注意
どうやらcygwinを使ってインストールするには、ビルドやらなんやらで、難易度が上がるそう。
(僕は何度か断念...)
環境構築にその他のスキルが必要になってくると、勉強としては言いのですが、
肝心の数値演算までいけないかもしれないので、
「まずは!」
環境構築して、動かして、演算させて、答えを得て、
それでも、必要であればcygwinやmingwを使ってLinux系の環境を作ればいいかと思い
できるだけwindowsの知識だけでの環境構築方法をまとめました。
Pythonのバイナリリスト
「Unofficial Windows Binaries for Python Extension Packages」 http://www.lfd.uci.edu/~gohlke/pythonlibs/
python関連のパッケージがリストされているので、.exeをここから探してダウンロードします。(ブックマークしておくと便利)
0. Pythonのインストール
本家よりダウンロードしてきます。
今回インストールするヴァージョン
Version 2.7.8
Proceccer 32bit
パスを通す
ここでパスを通していないと、以後が辛くなるので、
ちょっと頑張って見てください。
参考リンクを張って置きます
環境変数PATHの設定 - 環境設定と動作確認 - Pythonインストールと環境設定
もし成功していたなら、コマンドプロンプトからpython
と打つとどこでもpythonが立ち上がると思います。
余談
今回は2.7系を32bitのwindowsにインストールしますので、各インストーラは
(パッケージ名)‑**.win32‑python2.7.exe
がインストールする対象となります。
1. Package Managerのインストール
1.1 easy install
のインストール
まずはeasy install
をインストール
[https://bootstrap.pypa.io/ez_setup.py]
easy install
はテキストファイルなので、ez_setup.py
と名前をつけて、適当なフォルダにダウンロードし
python ez_setup.py
とすることでインストールできます。
僕はC:\Python27\ez_setup
に保存しました。
Windowコマンドプロンプトを使い慣れない人のために、コマンドも紹介して置きます。
フォルダの移動
cd C:\Python27
フォルダの中身を調べる
dir
ez_setup.py
があることを確認し
python ez_setup.py
インストールできましたでしょうか。
pip
はC:\Python27\Script\
にありますので、pipを利用するときにはcd C:\Python27\Script\
としてフォルダを移動しないと使えないので注意。
1.2 pip
easy install
をインストール後easy_install
コマンドでpip
をインストールします。
easy_install pip
2. 数値演算パッケージのインストール
さて、折り返し地点に来ました。
残り半分です
頑張りましょう。
2.1 numpyのインストール
行列演算用のパッケージnumpy
をインストールします。
二種類の方法があり、
2.1.1 バイナリファイルを使ってインストール
numpy‑MKL‑1.9.1.win32‑py2.7.exe
or
2.1.2 pip
を使ってインストール
cd C:\Python27\Script\
pip install numpy
numpyがインストールされたかテスト
[http://www.labri.fr/perso/nrougier/teaching/numpy.100/index.html:title]
こちらの100 numpy exercises
を参考に試します。例えばpythonを立ち上げて
>>>import numpy as np
>>> Z = np.zeros(10)
>>> print Z
これでzeroが10個表示されていれば成功です。
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
2.2 scipyのインストール
2.2.1 バイナリファイルを使ってインストール
[scipy‑0.15.0b1.win32‑py2.7.exe](http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy)
or
2.1.2 pip
を使ってインストール
cd C:\Python27\Script\
pip install scipy
scipyがインストールされたかテスト
[http://docs.scipy.org/doc/scipy-0.14.0/reference/tutorial/optimize.html]
import numpy as np from scipy.optimize import minimize def rosen(x): """The Rosenbrock function""" return sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0) x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2]) res = minimize(rosen, x0, method='nelder-mead',options={'xtol': 1e-8, 'disp': True}) print(res.x)
エラーがでなければ、大丈夫だと思います。
2.3 matplotlibのインストール
さてここまではうまくいってますでしょうか?
良く躓くのがここからです。
matplotlibを動かすためには、いくつか他のツールをインストールする必要があり、そのままでは動かないことがあります。
2.3.1 matplotlibのインストール
matplotlib‑1.4.2.win32‑py2.7.exe
テストコードを動かす
import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation def data_gen(): t = data_gen.t cnt = 0 while cnt < 1000: cnt+=1 t += 0.05 yield t, np.sin(2*np.pi*t) * np.exp(-t/10.) data_gen.t = 0 fig, ax = plt.subplots() line, = ax.plot([], [], lw=2) ax.set_ylim(-1.1, 1.1) ax.set_xlim(0, 5) ax.grid() xdata, ydata = [], [] def run(data): # update the data t,y = data xdata.append(t) ydata.append(y) xmin, xmax = ax.get_xlim() if t >= xmax: ax.set_xlim(xmin, 2*xmax) ax.figure.canvas.draw() line.set_data(xdata, ydata) return line, ani = animation.FuncAnimation(fig, run, data_gen, blit=True, interval=10, repeat=False) plt.show()
このコードを適当にex_matplot.py
などの名前にして適当な場所に保存
僕はC:\Python27\test\
と言うフォルダを作って保存しました
その後、実行して見ます。
cd C:\Python27\test\
python ex_matplot.py
ただしこれだけでは動かないと思います。
エラーを良く見るとパッケージの名前が書いているので、
それをインストールします。
2.3.2 その他のパッケージのインストール
six
Python-Dateutil
python‑dateutil‑2.2.win32‑py2.7.exe
pyparsing
pyparsing‑2.0.3.win32‑py2.7.exe
ここまででとりあえず、サンプルは動くと思います。
(補足)
バイナリリストで確認すると、
http://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib
Matplotlib is a 2D plotting library. Requires numpy, dateutil, pytz, pyparsing, six, setuptools, and optionally pillow, pycairo, tornado, wxpython, pyside, pyqt4, ghostscript, miktex, ffmpeg, mencoder, avconv, or imagemagick.
その他のパッケージが必要みたい。
恐らく、
pip install numpy, python-dateutil, pytz, six, pyparsing
とかするといちいちバイナリリストから.exeをダウンロードしなくても良いのだと思います。
ただし、pipでインストールするパッケージ名はちょこっと違うことがあるので、
cd C:\Python27\Script
pip search dateutil
などをつかって調べながらすると良いと思います。
以上です。
さて
やっと
本質である、数値演算ができますね。
参考
http://www.lfd.uci.edu/~gohlke/pythonlibs/
「numpy 100サンプル」
http://www.labri.fr/perso/nrougier/teaching/numpy.100/index.html
「Scipy.org チュートリアル」
http://docs.scipy.org/doc/scipy-0.14.0/reference/tutorial/index.html
「pythonを愛用している研究者のページ」
http://www.labri.fr/perso/nrougier/teaching/index.html
「pythonを使ったVisualizationについてのかっこいい紹介pdf」
http://www.labri.fr/perso/nrougier/downloads/ScientificVisualization.pdf