PythonがMathematicaを越える日

…は来ないと思いますがw

Python Scientific Lecture Notes

このサイト… 神!! オフライン版PDFはダウンロード必至.

ここを読むと,Python が如何に科学技術計算に使える現代的な言語であるか,を感じる.

Fortranなんか死ねばいいのに.

以下,引用

1.1.1. 科学者が必要とするもの

  • データを得る(シミュレーション, 実験制御)
  • データを操作したり加工する
  • 結果を可視化する…何をやっているか理解するために!
  • 結果を伝える:レポートや出版, プレゼンテーションのための図を作る

1.1.2. 必要なものの列挙

  • 古典的な数値計算手法や基本的な動作などの既存の 積み木 が豊富にある:曲線を描く, Fourier 変換, フィッティングアルゴリズムを再プログラミングしたくない. 車輪の再発明はするな!
  • 学習が容易:計算機科学は科学者の仕事ではないし, 科学者が教育することでもないただ, 曲線を描きたい, 信号を平滑にしたい, Fourier 変換を数分で行いたい.
  • 共同研究者や学生, 顧客と簡単に意思伝達ができ, コードが研究室や企業の中で機能する:コードは本のように読めるものでなければいけない. だから, プログラミング言語の構文の中の記号は少数であるべきだし, コードを読む読者の理解を数学的, 科学的なものから反らすようなルーチンも少なくあるべき.
  • 迅速に実行できる効率的なコード…だとしても書くのに多くの時間をかけるものは速くても役に立たない. つまり, 書くことと実行することの両方の速度が必要.
  • できれば, すべてを1つの環境/言語で済ませたい, 新しい問題それぞれを解決するのに新しいソフトウェアを学ぶことは避けたい.

Python はどうなの?

  • 利点:
    • 科学技術計算向けの豊富なライブラリ(でも Matlab よりすこし少ない)
    • よく練られた言語で, 読みやすく構造がはっきりしたコードが書ける:思ったとおりのコードが書ける.
    • 科学技術計算以外の仕事をするライブラリがたくさんある(web サーバ管理, シリアルポートアクセス等)
    • フリーなオープンソースソフトウェアで様々なコミュニティで広く使われている.
  • 欠点:
    • 開発環境は, 例えば Matlab と比べると少し使いにくい (より geek 向け).
    • 専門向けのソフトウェアやツールにあるアルゴリズム全てがあるわけではない.

少しライブラリ紹介

Numpyは多次元配列

Scipyは特殊関数,信号処理,FFT

Matplotlibはグラフ描画

mathは初等関数全般

randomは乱択アルゴリズム

これでだいたい僕がやりたいことは網羅してるような.

Vimでquickrunしつつ,ちょっとずつ使いこなしていきたいなあ

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中