昨今、AIや機械学習と言われるようになって数年経ちましたが、こうしたことに興味がある方は、いろいろ調べていくうちに、Pythonというプログラミング言語と出会うことがあったと思います。私の場合もそうでした。ここでは、そもそもPythonで何ができるのかを簡単に解説したいと思います。
Contents
Pythonでできること
動的型付の言語である(変数や関数の引数には型が指定されておらず、値が型を持っていたり、リストに異なる型の値を格納できる)こと、組み込みデータ型であること、ゲームや科学の分野も含めて豊富なライブラリーがあること、Webアプリケーション開発に適した豊富なフレームワークがあること、コミュニティーサポートがあることなど、Pythonが人気のあるプログラミング言語である理由は様々なあります。ここでは、Pythonが特に優れているアプリケーション開発についてできることを紹介したいと思います。
Pythonについて
Pythonは、Guido Van Rossumというオランダのプログラマーが開発したものです。名前の由来は、イギリスのコメディグループのmonty pythonにちなんだ名前のようです。読みやすさを重視して、作られたプログラミング言語であるところが、最大の特徴の1つ。学びやすい言語で、あらゆる主要なOSやコンピューター上で動作していて、ウェブサーバーを作ることから、デスクトップアプリケーションを作ることまで、あらゆる場面で利用されています。
Pythonのアプリケーション
この記事では次のような内容と、それらに関係するPythonのライブラリーについて簡単に紹介していきます。
・ウェブ開発
・ゲーム開発
・機械学習や人工知能(AI)
・データサイエンスとデータのビジュアル化
・デスクトップGUI
・ウェブスクレイピングアプリケーション
・音声やビデオのアプリケーション
Pythonはクロスプラットフォーム(WindowsやMac、Linuxなどの異なるOS間で同じ仕様のものを動かすことができるプログラム)のOSをサポートしているため、Pythonでのアプリケーションの構築が、とても便利になっています。その便利さの証左としてYoutubeや、DropBoxなどでもPythonが使われているようです。
1.ウェブ開発
ウェブアプリケーションを素早く開発するためにPythonが使われています。それは、アプリケーション開発において必要なフレームワークがPython側で用意されているからです。
最も有名なフレームワークに、Django、Flaskなどがあります。なぜフレームワークを使うのでしょうか?それは、1からウェブサイトの開発を行う場合に比べて、セキュリティや拡張性、便利さなどが優れているからです。
2. ゲーム開発
Pythonは双方向型ゲームの開発にも用いられています。Python3をサポートしている3DゲームエンジンであるPySoyや、ゲーム開発用の機能やライブラリーがあるPyGameのようなライブラリーがあります。
3.機械学習や人工知能(AI)
機械学習や人工知能という分野は、これから益々重要となってくる分野であることは言うまでもありません。過去に保存されたデータや、構築されたアルゴリズムにより予測されたデータによりコンピュータに機械学習をさせることができます。実は、最も選ばれているプログラミング言語がPythonなのです。これもまた、Pandas、Scikit-Learn、Numpyなど、機械学習を構築する上で大変便利なライブラリーが充実しているからなのです。
4. データサイエンスとデータのビジュアル化
リスクと利益を算出する上で必要な情報を抽出する方法を知っていれば、データは非常に価値のあるものです。PandasやNumpyは、情報を抽出する上で、大変便利なライブラリーです。さらに、それらの情報を視覚化するために必要な、MatplotlibやSeabornといった便利なライブラリーもPythonでは充実しています。
5. デスクトップGUI
デスクトップアプリケーションをプログラムするにもPythonが使えます。ユーザーインターフェースを開発するためのライブラリーとして、Tkinterがあります。他にも、wxWidgets, Kivy, PYQTのようなものもあります。簡単な、計算機アプリなどから試しに初めてみてもいいかもしれません。
6. ウェブスクレイピングアプリケーション
Pythonでは、インターネット上に公開されている現実世界の株価や為替の変動などを読み取るウェブスクレイピング用のライブラリーである BeautifulSoupがあります。単にこれらのデータを抽出して、CSVなどのデータとして保存することも可能ですが、これらのデータを元に、Pandas、Scikit-LearnやNumpyなどのPythonライブラリーと組み合わせることで、過去のデータから未来の株価や為替を機械学習により予測することも可能です。(下の図の例では、緑色のラインが過去のデータ、黄色のラインが、機械学習により予測された結果です。)
7. 音声やビデオのアプリケーション
Pythonではビデオやオーディオのアプリケーション用に、TimPlayerや、Cplayなどのライブラリーが用意されています。
おわりに
ここで紹介した内容は、Pythonでできることの一部ではありますが、それでもPythonが持っているポテンシャルを少しは感じていただけたのではないかと思います。ここでは紹介しませんでしたが、iOSでPythonが実行できる「Pythonista3」という有料アプリもあります。pip install できるライブラリーに制限はあるものの、それでもPython x iPhone や Python x iPad のアプリケーションも開発できるため、とても便利なアプリです。