忘れないようにメモっとく

機械学習とかプログラミングとか。

Scipy Superpack

科学技術計算にpythonを使う

うちの研究室ではCやmatlabを使うことが多いけれど、最近自分はpythonをよく使う。
微分方程式を使ったシミュレーションなどでは、計算速度の問題でC++で書くけど、短時間で済むデータ解析などにC++を使うのはかったるい。matlabはライセンスの関係で学校のネットワークじゃないと動かない。そもそもmatlabのインターフェースが好きじゃない。(IDEもfunctionも嫌い)

その点pythonはインデントが読みやすいし、ターミナルでガリガリ書ける。なにより計算ライブラリが豊富なので、pythonだけで一つの研究テーマの計算を完結することもできる。
NumpyとScipyには大抵の計算用のアルゴリズムが含まれているし、図の作成にはMatplotlibやSage、統計処理にはPandasもある。全部オープンソース!! Python!! 巳年!!

Scipy Superpack

Numpyの中にルジャンドル多項式が入ってるはずなんだけど、バージョンが古くて使えなかった。
ScipySuperpackを使うと上述したような、ライブラリを一括でMacにインストールできる。

$ git clone https://github.com/fonnesbeck/ScipySuperpack.git
$ cd ScipySuperpack/
$ sh install_superpack.sh

これで完了。

scipy.specialが使えないよ

ルジャンドル倍関数がspecial内にあるはずなので、

 import scipy as sp
 dir(sp.special)

とするとエラーが発生する。scipyをインポートするだけでは、サブパッケージまではインポートしないので、以下のようにspecialパッケージをインポートする。
参考

 from scipy import special


※追記
import matplotlib.pyplotが使えない。matplotlibのversionが問題のようなので、

pip unintall matplotlib -y
pip intall matplotlib

これでOK。