そうだPythonを勉強しよう

と思ったわけなので、その理由と現在の進捗を。

理由

至極、単純。何を血迷ったかわからないのだけど、

Python Scripting for Computational Science (Texts in Computational Science and Engineering)

Python Scripting for Computational Science (Texts in Computational Science and Engineering)

この本を去年の8月ぐらいにポチッたから。

そして、届いたらすぐに読み始めればよいものの、同時に、

Emacsテクニックバイブル ?作業効率をカイゼンする200の技?

Emacsテクニックバイブル ?作業効率をカイゼンする200の技?

この本もポチッており、この本を開いた瞬間に他の本がぶっ飛ぶぐらいの衝撃を受けたので、Python本は机の引き出しに長い間眠ることになりました。

さてさて、皆さん、グラフ化ツールは何を使っているでしょうか? また、簡単な計算をするにはどの言語を使っているでしょうか?

私は、グラフ化はGnuplot, ちょっとした数値計算はCで書いておりました。しかし、Gnuplotは線種を自由自在に操れないので、その場で結果を見る分にはいいけど、ちゃんとしたドキュメントに残す際に、不都合が生じてしまう。また、Cは速くていいのだけど、いい加減、Segmentation Faultなんて見たくなくなった。

ということで、何か新しい環境を探していたわけです。

そこで、Pythonですよ〜、と天の声が聞こえたわけではないのですが、PythonだとMatplotlibを使うことで、線種を自由自在に操ることができるし(Matplotlibギャラリー)、さらにNumPyを使うことで、Cに匹敵するほどのスピードで数値計算ができる。それでも飽き足らなければ、Cのライブラリをコールすればいい、ということで、どうやら数値計算+レポート作成にはPythonが一番良さそうだ、と言う結論になりました。

しかし、ここは情弱な私。Web等を巡回してNumPyやMatplotLibやCバインディングの使い方は何となくわかったものの、ちゃんと理解出来ていなかったので、ちょっとしたことで動作しなくなったり、コードが理解できなくなってしまいました。

そして、やがてAmazonでポチることになったのです。

本の内容

目次

1. Introduction
2. Getting Started with Python Scripting
3. Basic Python
4. Numerical Computing in Python
5. Combining Python with Fortran, C and C++
6. Introduction to GUI Programming
7. Web Interfaces and CGI Programming
8. Advanced Python
9. Fortran Programming with NumPy Arrays
10. C and C++ Programming with NumPy Arrays
11. More Advanced GUI Programming
12. Tools and Examples
A. Setting up the Required Software Environment
B. Elements of Software Engineering

目次を見るとわかるとおり、この本は、Pythonで数値解析をやるために、NumPyを使った効率的なコードの書き方、結果をレビューするためのビジュアライゼーション、そして、高速化のために、Fortran/C/C++のコードを協調させるやり方に特化した本です。

この中では、4, 5, 10章あたりが読んでみたかったので購入しました。

進捗

今、4章まで読み終わったところです。NumPyをひと通り眺めたので、何か作ってみたかったのですが、今日は眠すぎるので、また今度にしますw

ということで、これからしばらくPythonでの数値計算の勉強記をつけていきたいと思います(気力が続けばね)。