IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

AI活用時代にPythonで見る夢

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第4回 春なのでPythonはいかがでしょうか? (辻真吾) 2017年4月

みんなのPython勉強会

2年ほど前から、「Pythonでスタートする人たちの集い」というスローガンのもと、みんなのPython勉強会という勉強会を月に1回のペースで開催しています。IT系の勉強会というと、比較的知識のある方々が集まって、その技術力をさらに磨くというイメージがありますが、みんなのPython勉強会は、毎回様々な分野からゲストスピーカーを招き、時にPythonと関係のない話題まで巻き込んで、多くの方々に楽しんでいただける勉強会を目指してきました。始めた当初はいつまで続くか分からないと思っていたものですが、いろいろなご縁をいただき、去る3月18日に、始めて長野で地方開催をするまでになりました。開催場所は、GEEKLAB. NAGANO。GEEKLAB. NAGANOは、Pythonに限らず、長野におけるIT関連技術の集積基地になることを目指している集まりです。みんなのPython勉強会とGEEKLAB. NAGANOとの関係は深く、東京で開催される勉強会を毎回、長野へ中継しているのですが、今回初めて私ともう1人の共同主催者が東京から出張し、長野周辺の方々が30名ほど集まって、Pythonについて大いに語りあいました。
私もこの会で、Pythonへの入門について話したので、今回はこれを紙上再現して、この春Pythonを始めて見ようかと思っている方への一助になれればと思います。

Pythonの人気

プログラミング言語の人気を測る指標はいくつかありますが、Googleでどれくらいドキュメントが検索されているかを元に、プログラミング言語をランキングしているのが、PYPL PopularitY of Programming Languageです。2017年3月現在、このサイトでPythonは遂に2位になっています。Javaは安定してその勢力を保っていますが、これまで2位だったPHPをPythonが逆転しており、王者の背中が見えて来たという感じです。さらに、code evalというサイトでは、2016年の調査でPythonが1番人気です。code evalは、出されたお題に対して、ITエンジニアがプログラムを作り、その性能を競い合うと言った類いのサイトです。つまり、仕事ではPython以外の言語を使っているプログラマも、自分の意思で言語を選ぶなら、Pythonが1番になるということを示しています。
どうしてそんなに流行っているのか?

これには、いろいろな理由があって、一概に語ることは難しいと思いますが、昨今のAIや機械学習ブームが原因の1つであることは間違いないと思います。Pythonはこうした分野で、間違いなく中心的な役割を果たす言語です。Pythonを使ったデータ解析は、Rなどのデータ解析専用の言語より、すこし難しいですが、ひとたびPythonが使えるようになると、汎用言語であるPythonの強みが生きてきます。データベースに接続して、データをとってきて加工し、機械学習アルゴリズムに渡した結果をWebで表示するアプリケーションを作りたいと思っても、すべてPythonでコーディングすることができます。また、Deep Learningは、最近のAI(機械学習)の進化を支える重要な技術的要素ですが、現在利用できるDeep Learningアルゴリズムのライブラリの多くが、Pythonを使って利用出来ます。私の近くでも実際に、これまでPythonを敬遠してきたが、Deep Learningを試して見たくなって、Pythonを始めたという方がいるほどです。
もちろん、Pythonに当初から備わっている魅力も見逃せません。Pythonの哲学の1つに、Batteries Included(電池内蔵)というものがあります。これは、Pythonに最初から色々なライブラリ(プログラムの部品)が組み込まれていることを意味します。PythonにはWebサーバやSQL型のデータベースまでもが内蔵されているので、何をするにも短いコードで済みますし、すぐに遊べるという点で楽しい言語になっていると思います。

そんなPythonを始めるには?

Pythonをこれから始めようと思っている方には、1つ注意事項があります。Pythonには、バージョンがあり、現在利用出来るのは、2.7系と3.6系ですが、これらの間には後方互換性がありません。2系は2020年にサポートが終了することが決まっているので、是非3系をご利用下さい。ここまで絶賛してきたPythonですが、ここで始めて、ちょっと厄介な問題が出てきます。これまで、2系で作られた資産が膨大なため、3系への移行が順調に進んでいるとは言えないのが現状です。Linux系のOSやmacOSには、システムに最初からPythonが入っていますが、これらの多くが2系になっています。特にLinux系のOSでは、このシステムの2系のPythonを動かなくしてしまうと、OSの挙動がおかしくなってしまうこともあるので、注意が必要です。これを避けるために、3系のPythonをpython3などとして起動するのが一般的です。
Pythonは無料で利用できます。公式サイトからダウンロードして、普通のアプリケーションと同じようにインストールして利用出来ますが、最近おすすめしているのが、Anacondaです。Pythonは英語で蛇ですが、Anacondaは大蛇です。Anacondaには、標準のPythonに加え、データ解析で使われる外部ライブラリが、あらかじめ同梱されています。データ解析でよく利用される、numpyやscipyなどのライブラリは、実はセットアップが少し難しく、私も昔は苦労していました。Anacondaは、北米ヒューストンに拠点を置く、continuum analytics社が無料で配布していますが、彼らのお陰でPythonのセットアップが相当楽になったので、世界中で多くの時間が節約されたに違いありません。
AnacondaでPythonをセットアップすれば、多くの外部ライブラリが最初から使えるようになっていますが、もちろん後から付け足すことも可能です。Pythonの外部ライブラリは、Python Package Indexで管理されていて、pipというコマンドを使うと、ここからファイルを自動的にダウンロードして、インストールしてくれます。例えば、PythonのWebフレームワークで有名な、Django(ジャンゴと発音します)をインストールするには、OSのシェルから、以下のコマンドを打つだけです。

pip install django

Anacondaに付属しているcondaコマンドでも同じように、外部ライブラリの追加が可能です。
pipで外部ライブラリをインストールしようとして、稀に、CやFORTRANで書かれたプログラムをその場でコンパイルしようとする場合があります。Linuxでは問題ありませんが、開発環境が整っていないOSでは、ここでエラーになってしまいます。そんなとき、condaを利用すると、コンパイル済みのバイナリをインストールしてくれるので、便利です。詳しくは、condaやpipなどをキーワードに是非調べてみてください。

プログラミングを学ぶには?

プログラミングに限らず、何事もそうだと思いますが、本で読んだり、聞いて理解した知識だけでは、出来るようにはなりません。実際に自分の手を動かして見ることが重要です。プログラミングも、実際にコードを書くことが重要です。ただ、何をプログラミングしたらいいのか、題材が無くても困ることもあるかもしれません。そんなの時に、プロジェクトオイラー(Project Euler)がおすすめです。本家サイトは英語ですが、ネット上には有志の日本語訳もいくつかあります。難易度に差はありますが、数学の問題をプログラミングで解くのが目的で、プログラミングの題材に困ったときには便利だと思います。ちなみに、今回の「みんなのPython勉強会 in 長野」には、1人中学生の参加者がいらっしゃいましたが、このプロジェクトオイラーでプログラミングの勉強をしたという発表をしていました。みなさんも是非チャレンジしてみてください。

発表終了後に会場からの質問で、「Pythonを数式処理ソフトのように使うのは邪道でしょうか?」という質問をいただきました。これは、とても良いポイントで、Pythonには豊富な外部ライブラリがあり、とくにデータ解析の分野では、ほとんど複雑なプログラミング無しで、高度な解析ができます。複雑なプログラミングは確かに難しいものですが、ちょっとしたデータ解析に数行のPythonコードを使うことは、邪道ではなく、むしろオススメの使い方です。
この連載でも今後、Pythonでどのような事ができるのか、具体的に紹介していこうと思います。
この春、もしよかったら皆さんもPythonをはじめてみるのはいかがでしょうか?

 


 

筆者書籍紹介

いちばんやさしいパイソンの本
Python スタートブック
  ――Pythonの基本をしっかりマスター

まったくのゼロからでも大丈夫

辻真吾 著
B5変形判/352ページ
定価(本体2,500円+税)
ISBN 978-4-7741-9643-5
詳しくはこちら(出版社WEBサイト)
Pythonスタートブック増補改訂版

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes