gooブログはじめました!

写真付きで日記や趣味を書くならgooブログ

Pythonに入門する

2020-02-09 08:30:50 | ブログ
 プログラミング言語として、FORTRAN、COBOLおよびPASCALを使用したことがある。PASCAL以後、20年くらいプログラミング言語らしいものを使っていない。そこで、最近その名前を見かけるPythonについて、今どきのプログラミング言語とはどんなものか、のぞいてみることにした。

 まず、Pythonがインタプリタ言語であるということに注目する。コンパイル不要であり、入力されたプログラムを直接解読して実行する。特に、インタラクティブモードでは、プログラムを1行書いてEnterキーを押すとすぐに実行してその結果を出力するので、電卓のような使い方もできる。読みやすく簡潔なプログラムを作成できるので、プログラミング教育用の言語としても向いている。

 Pythonには、Python本体とともにインストールされる組み込み関数や標準ライブラリが用意されている。自分で定義した関数を実行するときには、プログラムの解読処理のほかに関数呼び出しのために処理時間がかかる。よって、極力Pythonの組み込み関数や標準ライブラリ関数を使う方がよい。Pythonが備えている関数は、最適化されており、C言語で実装されて高速化されているものも多数ある。

 しかし、プログラミングにPython固有の関数を利用しても、大規模な行列計算のような科学技術分野の数値計算をすると非常に処理時間がかかる。そこで、科学技術計算の場合には、Numpyのような外部ライブラリを利用するのがほぼ必須となっている。

 プログラミングと言っても、Python固有の関数や外部ライブラリをフルに活用するとなると、プログラミングというものの概念がパラダイム・シフトしているような気がする。職人技を駆使して自分以外には解読困難なプログラムを作成するよりも、できるだけ出来合いの関数やライブラリをアウトソーシングする方がプログラムの可読性とメンテナンス性の向上になることは確かである。

 Numpyは、行列あるいは配列に特化したライブラリであり、その関数群は、C言語やFORTRANで実装されている。

 外部ライブラリであるScipyは、さまざまな科学技術計算アルゴリズムを提供するパッケージであり、Numpyの機能の上に構築されている。Scipyは、FORTRANで記述されたコードをPythonから利用できるようにしたもので、その多くの関数は、FORTRANプログラムである。

 機械学習やディープラーニングの分野でも、Pythonはよく使われているようである。

 外部ライブラリを使用することによって、PythonプログラムからExcelファイルの書き込み/読み出しができる。PythonとExcelが連携することによって、どのようにエクセル作業が効率化されるのか、興味深いところである。例えば、Excelで設定した行列データをPythonプログラムに読み込むなどである。

 また、外部ライブラリを使用することによって、インターネット上のHTML形式で記述されたリソースを取得してPythonプログラムに入力することができる。

 当面の具体的な目標として、3DCGの図形作成のために、PythonをプラットフォームとしてNumpyとScipyを使ってみたい。計算した3DCGのオブジェクトをMatplotlibのような可視化ツールを使って表示する。

 参考文献
 鎌田正浩著「確かな力が身につくPython「超」入門」(SBクリエーティブ)
 中久喜健司著「科学技術計算のためのPython入門」(技術評論社)