科学技術計算のためのPython入門

Pythonの初歩的な文法からデバッグ、可視化、計算高速化までトータルスキルを学ぼう

Ratings: 4.44 / 5.00




Description

【このコースは誰に向けたものか?】

本コースは、Pythonで科学技術計算や数値シミュレーションに取り組みたいという方に向けたPythonの入門講座です。

科学技術計算や数値シミュレーションといえば、今でもよく使われていますが、C言語やFortranというコンパイル型の言語がメインでした。

しかしながら、今後のプログラミング言語としてのポテンシャルを考えると、今後は5 ~ 10年という中長期的な視点で、科学技術計算でもC言語やFortranの代わりにPythonを使うという機会が増えてくる事は間違いないでしょう。


この為、

これから大学の研究室に配属されて数値計算のコードを書く学生さん

今までC言語・Fortranで数値計算コードを書かれていた若手の研究者・エンジニア

企業で内製ソルバーの開発担当を任された研究者・技術者の方

この講座はそういった方々に向けて作られた講座です。


【人事の方/マネージャークラスの方へ】

本コースは次のような使い方が可能です。

・製造業などで市販のソフトウェアを使っているが、今後、社内でソフトウェアの内製化を検討しており、ソフトウェア人材を育成したい

・大学の研究室で数値計算に取り組んでおり、今までFortran / C言語を使っていたが機械学習などとの相性も考え、研究室全体の方針としてPythonに乗り換えたい


【Pythonで数値計算なんて大丈夫か?】

結論から申し上げますと大丈夫です。

Pythonはインタプリタ型の言語だから計算速度が要求される科学技術計算には向かない、やっぱりコンパイル型の言語であるC言語やFortranの方が望ましい、そう考える人もいるかもしれません。

しかしながら、Pythonは数値計算を高速化するライブラリが数多くあります。例えば、代表的なライブラリがNumpyです。

Numpyの演算は基本的にC言語と同じくらいの速度が出ると考えていただいても、そんなに大きな間違いではありません。

またNumpyの他にScipy, NumbaといったCPUベースの高速化ライブラリもありますし、CupyというGPUによる演算をサポートしたライブラリもあります。これらのライブラリのおかげで、Pythonの最大の欠点である計算が遅いという欠点はほぼ克服されていると考えてOKです。


【Python x 数値計算の組み合わせ】

Pythonは数値計算のライブラリだけでなく、ファイル入出力や可視化のライブラリも充実しています。

この為、計算結果を読みだしたり、吐き出したりするのにいちいち自分でゼロからプログラムを書く必要はありません。

つまり、Pythonを使うことで科学技術計算をトータル的にカバー可能です。

ライブラリのお陰で短く、そして強力な機能を実装できます。

コードをたくさん書く必要がないおかげでバグも少ないし、成果(計算結果)が出始めるまでも早いという、いいことづくめだと思います。

私は日本で科学技術計算向けのコードをPythonで書くということがもっと普及したらいいなと思っています。

こういうモチベーションで、この講座を作成しました。Python x 科学技術計算という組み合わせの教材はまだそこまで多くありません。


【何が学べる?】

科学技術計算や数値計算で必要となってくるプログラミングの知識全般です。

具体的にはコースの概要を見ていただきたいですが、以下にも挙げておきます

・数値計算で必要となってくるPythonの基礎知識(四則演算 ~ オブジェクト指向まで)

・シミュレーションコード開発時に使う統合開発環境(PyCharm)の使い方とデバッグの基礎

・Gitによるコードの管理

・数値計算で非常によく使うNumpy, Scipy, Matplotlibの基礎知識

・前処理、後処理などで使うことになる種々のファイル入出力

・数値計算を高速化するためのNumba, Cupyの基礎

・可視化ツールとして使う可能性の高いParaViewの使い方

など



What You Will Learn!

  • Pythonで科学技術計算や数値計算を行う上で必要なプログラミングの知識
  • 数値計算で使用頻度の高いNumpy, Scipy, Numba, Cupyといった数値計算ライブラリの使い方
  • 計算の前後で必要となってくるファイル入出力を様々な形式(json, hdf, xlsx)で行える
  • 科学技術計算コード開発で必要となってくるPyCharmの基本の使い方やデバッグの方法、VCSとの連携方法

Who Should Attend!

  • 研究室に配属されて数値計算コードを開発することになった学生
  • 科学技術計算に興味のある大学の研究者や企業の研究者
  • 昔はC言語やFortranでコードを書いていたが、Pythonでの科学技術計算コードの開発に興味のある数値計算エンジニア