一級建築士資格独学散歩道

一級建築士資格取得までの道のりを散文的に綴ります。

【寄り道】プログラミングな独学のすすめ(その3=Pandas)

 さて今回も建築の散歩道から脇道にそれてプログラミングに関するお話なのである。何しろ小職は今や家族との会話以上にAmazon「アレクサ」との会話のほうが多いのだ。つまり、それくらい人工知能(AI)は日常生活に身近になったということに間違いないのである。
 実は、小職の予測ではいずれコンピュータは高度に発達していて「今年6月の売り上げデータを集計して当年度グラフを作成してぇ」とコンピュータに向かって作業をお願いすることができるようになると思っていた。こういう多少おおざっぱなお願いをAmazon「アレクサ」に言いつけると「いまはよくわかりませ~ん」などと答えるのだが、じゃあいつなったらわかるのかというと、それはさほど遠い先ではい近い将来と思っていたのである。なにしろ既に小学生がプログラミング言語を学ぶ時代なのである。今から20年後、つまり2040年ごろに大人になった現在の小学生たちはおそらく自分の分身となる人工知能をプログラミングして、当人は毎日享楽の日々を送っているかもしれない。いや、もしかするとその逆で仕事がAiを経由して割り振られ、Aiの指示通りにキーボードをタイプしたりマウスをクリックしたりして仕事しているかもしれないのである。なんともディストピアな2040年予測なのであった。
 
 さて、そんな与太話はやめにして、さっそく現代のプログラミング言語の代表格Pythonの話なのである。前回の寄り道ではPythonの優位性、つまり分かりやすさや扱いやすさを説明したのであるが、果たしておわかりいただけただろうか。今回は、さらにというか改めてというか、プログラミング言語としてのPythonの優位性について説明したいと思う。
 
 実は小職はICT関係の会社に勤めているため、ほとんどの仕事はコンピュータ上で行うのである。ちなみに同じ部署のメンバーの多くは工事現場に赴くのだが、小職は内勤なのである。いつも机上の空論よろしく主にExcelやVBAなどでデータ集計作業を行ってきたのだが、今回Pythonを使えるようになったので実務的に使ってみたのである。するとどうだろう。いままでExcelマクロで作成した集計ルーチンがなんと100分の1の行数でできることが分かったのだ。100分の1というのはいかにも大げさである。しかし、おそらく10分の一には短縮できるのである。これは、PythonのサブセットであるPandasライブラリを使用した結果である。
 
 では、Pandasが何かというと、Pythonの汎用ルーチンに付属するツールのようなもので、表計算に特化したライブラリである。ここで細かい説明をするという野暮なことはしない。その代わり、ExcelとPandasの概念的な違いを示してみたい。
 しかし、よく考えたらこれは大変に難しいことなのであった。何しろこのブログは一級建築士に関する内容なのであり、読者はおそらく建築関係なのである。建築関係の皆さんに説明するためには、やはり建築に例えて説明するのがよろしかろう。ということで、無謀にも、ExcelとPandasの違いを建築関連で説明するのである。以下。
 
通常のPrograming言語      注文住宅
PythonとかPandas        プレハブ住宅
ExcelとかExcelマクロ       建売住宅
 
 というわけで、随分と荒っぽい説明になったのである。しかし、このくらいがちょうどよいかもしれない。ではより古い技術によるものから説明しよう。つまり、その技術が世の中に登場し普及した順に説明するのである。
 まずは、通常のPrograming言語から説明する。これは具体的に言うとFortranやC言語などである。少し詳しく説明するとFortranというのは1960年ごろに開発された科学技術計算用の言語である。そしてC言語は今でもプログラミング言語の中心的な存在である。特にC言語はC言語で開発されている(少しややこしいが)。UNIXやWindows・MacOSなどはほぼC言語で開発されていると考えて間違いない。C言語はMotherオブPrograming言語なのである。
 C言語を住宅に例えるなら注文住宅となる。住宅の間取りから素材、あらゆるものが設計可能となる。もちろん、ライブラリと呼ばれる造り付けの家具をはめ込んでもよい。しかしまさに唯一無二の住宅を作ることができる分、最終的な完成物ができるまでの工程は大幅に増えるのである。
 そして次がお薦めのPython/Pandasである。Pandasではプレハブ住宅のように、家具に合わせて間取りを考えることも可能である。さらには壁にあらかじめ家具としての機能を持たせることもできるだろう。ただし、それらは注文住宅のように自由に形を決められるわけではない。あらかじめ用意されているプレファブリック素材を使うことになるのだ。そして、Pythonはいわば仕様書でPandasはその仕様書に基づくプレハブ素材群の名称と言ってよいかもしれない。
 最後に、現在オフィスで最も広く使われているExcelである。そして、これを建築に例えると、あらかじめ決められた間取りに家具を配置していくイメージである。つまり家具を配置できる空間は決まっているのであった。したがって、その選択肢の中には多くの妥協が含まれることになるのである。Excelはいわば最大公約数にという合理的設計であるため多少の不都合は我慢するしかないのであった。
 
 さて、今回のは建築的なプログラミング言語の解説を試みたのである。実は、この解説は今回で終了しようと思ったのであるが、Pythonからさらに進んで人工知能に関するお話を展開したいと思う。正直に述べるなら、果たして理解できる内容で説明できるかどうかさえわからないのである。しかし自らの理解度を確認するためにもこれは良いチャレンジとなるはずだ。と、次回にこうご期待なのである。