今はやりのAI(人工知能)や機械学習、データ分析のシステム構築には、プログラミング言語「Python」の活用が欠かせない。Pythonを使ったシステム開発には、デファクトスタンダードと呼べるライブラリー群やコーディング規約が存在する。これらを理解することがPythonでシステム開発を始めるための第一歩となる。

 AI(人工知能)ブームをきっかけにプログラミング言語「Python(パイソン)」が存在感を増している。Pythonと言えば、AIや機械学習のシステム開発に利用すると思われがちだが、実は適用領域は幅広い。CMSコミュニケーションズの寺田学代表取締役は、「現在、Pythonは大きく5つの分野で活用されている」と話す。それが、(1)データ分析/機械学習、(2)Webシステム、(3)OS周辺の管理ソフト、(4)IoT(インターネット・オブ・シングズ)機器、(5)3Dアニメーション、の分野である(図1)。

図1●Pythonが利用されているシステム
[画像のクリックで拡大表示]

 最も著名な分野は「データ分析/機械学習」だろう。Pythonはデータ分析や機械学習に使えるライブラリー群が充実している。「他言語よりも少ないコードでデータを分析したり、機械学習のモデルを作成したりできるため、これらの分野の開発を担当しているエンジニアには、Pythonの利用がデファクトスタンダードになっている」(NECのAI・アナリティクス事業部 兼 データサイエンス研究所菅野亨太シニアマネージャー)という。

 「Webシステム」で多く見られるのは、Webサイトから分析データを集めるWebスクレイピングの処理とWeb APIの開発だ。Pythonライブラリーの中には、Webスクレイピングを実施したり、スクレイピングしたデータを整形したりする定番ライブラリーが存在する。これらを活用することで、「Webからデータを収集し、分析するまでをPythonという1つの言語で完結できる」(NTTデータのモバイルビジネス事業部第二統括部デジタル企画担当山口滉平主任)という。他のプログラミング言語を覚える学習コストが押さえられるわけだ。

 「OS周辺の管理ソフト」の中には、Pythonで構築されたものがある。例えば、Linuxのパッケージ管理システムの「Yum」やクラウド環境構築ソフトウエアの「OpenStack」などが挙げられる。「IoT機器」の分野では「MicroPython」というマイコン向けのPython処理系が使われる。IoT機器で取得したデータをエッジ端末に送信する機能などをPythonで開発するという。この他、MayaやBlenderといった3Dアニメーション作成ソフトとプログラミング言語のPythonを組み合わせた開発も盛んに行われているという。

処理ごとに定番ライブラリーがある

 Pythonは様々な分野で使われているが、開発対象ごとにライブラリーが数多く存在する。これから開発を始める人は、どれを利用すればよいのか悩んでしまうことが多い。

 アビームコンサルティングのP&T Digital ビジネスユニットAIセクター加藤大陽シニアスペシャリストは、ライブラリーの選定ポイントとして、「コントリビューターの数が多いこと」「更新頻度が高いこと」「GitHubの星の数が多いこと」の3つを挙げる。これら3つを満たすライブラリーは、開発者が多く、保守やアップデートも行われ、かつ開発者に人気があると分かる。

 Pythonを用いた開発では、予定していた結果が得られない、目的の速度が出ない、といった何かしらの問題に直面する。その場合、エンジニアの多くは「Qiita」や「Stack Overflow」といった技術者向けのWebサイトを参考にする。「自分が悩んでいることは、他のエンジニアも同じように悩んでいることがほとんど。事実、技術者向けのWebサイトで解決法が見つかることは多い」(加藤シニアスペシャリスト)と話す。ライブラリーの利用者が多ければ、それだけ問題解決のヒントが見つかる可能性が高まるわけだ。

この先は有料会員の登録が必要です。「日経SYSTEMS」定期購読者もログインしてお読みいただけます。今なら有料会員(月額プラン)が2020年1月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら