目次
- 目次
- はじめに
- ツールやワークフローを使った科学技術計算
- プログラミング言語 Python
- NumPy: 数値データの作成と処理
- Scipy: 高水準の科学技術計算
- 参考資料
- MyEnigma Supporters
はじめに
下記のScipy Lecture Noteという、
オンライン上の数値演算・解析系のPythonチュートリアルが
素晴らしかったので、
読んで心に残ったことをメモしておきたいと思います。
ツールやワークフローを使った科学技術計算
MATLABの問題点:
言語の基本機能が貧弱で先進的なユーザからすると制限が多く感じられる。
フリーでない。
Pythonの問題点:
開発環境は, 例えば Matlab と比べると少し使いにくい (より geek 向け).
専門向けのソフトウェアやツールにあるアルゴリズム全てがあるわけではない.
Pythonにおける三次元可視化ツールとしては、
Mayaviというツールがある。
Jupyter notebookでは、
%timeit
の後にコードを記述すると、そのコードの計算時間を計測してくれる。
また、モジュールや関数の後ろに?(はてな)をつけると、
docstringを表示してくれる。
プログラミング言語 Python
ファイル名のパターンマッチングにはglobが便利
11.7. glob — Unix 形式のパス名のパターン展開 — Python 3.6.5 ドキュメント
NumPy: 数値データの作成と処理
Pythonのリスト内包表記よりも、
numpyのarrayを使ったブロードキャスト計算の方が、
計算が早い。
ファンシーインデックスの例:
aの中で3で割り切れる要素に-1を入れる
a[a % 3 == 0] = -1
Numpyによる多項式の計算
Numpyによる多項式近似
Scipy: 高水準の科学技術計算
scipyのサブモジュール
scipy.cluster ベクトル量子化 / K 平均法
scipy.constants 物理数学定数
scipy.fftpack Fourier 変換
scipy.integrate 積分ルーチン
scipy.interpolate 補間
scipy.io データ入出力
scipy.linalg 線形代数ルーチン
scipy.ndimage n-次元画像パッケージ
scipy.odr 直交距離回帰
scipy.optimize 最適化
scipy.signal 信号処理
scipy.sparse 疎行列
scipy.spatial 空間データ構造とアルゴリズム
scipy.special 任意の数学特殊関数
scipy.stats 統計
scipy.io
MATLABの.matファイルは
savematとloadmatで読み書きができる。
spio.savemat('file.mat', {'a': a})
data = spio.loadmat('file.mat', struct_as_record=True)
scipy.optimize
様々なアルゴリズムの最適化が利用できる
詳細は下記を参照
scipy.interpolate
様々な補間を使うことができます。
下記が実際の使い方です。
参考資料
MyEnigma Supporters
もしこの記事が参考になり、
ブログをサポートしたいと思われた方は、
こちらからよろしくお願いします。