概要
今回はPythonの基本的な文法は一通り習得したけれど次に何をしたらいいのかわからない、といった人向けに、Pythonでできること、しない方がいいことを合わせて12件紹介します。
また、Pythonをやったことがない人でも、興味のある分野があれば、この機会にPythonの勉強を始めてみてはいかがでしょうか。
Pythonでできること
作業の自動化
日々の会社の業務で自動化したいと思える作業はたくさんありますよね。
例えば、
- 会社の業務でデータをExcel空コピペしてきて、集計し報告書をGoogleスプレッドシートに格納する作業
- Excelから請求書を発行してPDF化する作業
- フォルダ内の複数の経費申請ファイルを1つのファイルに集約する作業
- 顧客ごとのおすすめ商品提案書を自動作成する作業
これらの作業はPythonで全て自動化することが可能です。
しかも、後々紹介してゆくものよりも比較的簡単にできる割には非常に便利なものが多いです。
プログラミングをほとんど始めたばかりの人でもとっつきやすくお勧めです
スクレイピング
スクレイピングとはWebサイトから特定の情報を自動的に抽出してくる作業です。
スクレイピングを用いることで営業リスト収集、競合商品のリサーチなどが可能です。
ライブラリとしては、BeautifulSoup、Scrapyがあります。
スクレイピングも作業の自動化と同様、比較的プログラミング初心者でもとっつき安い部類に入ります
また、スクレイピングは先ほど紹介した業務自動化の技術と組み合わせることでより効果を発揮する場合もあります。
例えば、特定のWebサイトからデータを収集してきて、それをExcelにまとめて集計しGoogleドライブに格納するなどの作業が考えられます
データ解析
Pythonにはデータ処理、分析、可視化に便利なライブラリが豊富にそろっています。
具体的にはデータ処理、分析にはNumpy、Pandas
データ可視化にはMatplotlibといったライブラリが挙げられます。
例えば、顧客や市場のデータを処理、分析し、その結果を可視化するのに使われたりします。
データ可視化のツールとしては他にはPower BIやTableauが挙げられます。
これらのツールは確かに便利ですが有料です。
さらに慣れればMatplotlibの方が細かくカスタマイズできるというメリットもあります。
データ解析も先ほど紹介したデータ自動化、スクレイピングと組み合わせることでより効果を発揮します。
例えば、特定のWebサイトからデータを収集し、データ処理、分析を行ったうえでその結果をPDF化し、顧客に営業用飼料としてメールで送信するなどが考えられます。
機械学習
Pythonには機械学習に便利なライブラリが豊富にそろっています。
scikit-learnが代表的なライブラリの例です。
機械学習を用いて可能な例として製品需要の予測が挙げられます。
過去の販売量、出荷量や商品の特性等のデータをもとに製品の需要がどれくらいあるか分析することができます。
顧客の需要をより正確に把握することができると在庫過多による管理コストの増大、在庫不足による機械損失を避けることができます
その他には株式の予測やクレジットカードの不正利用検知など様々な分野に利用可能です。
機械学習の中でも注目されているのはディープラーニングです。
ディープラーニングのライブラリとしてはTensorFlow、Pytorchなどがあげられます。
近年、流行しているChatGptもこのディープラーニングの一種です。
その他にも画像処理、音声認識、音声自動生成、自然言語処理などが可能です。
IoT
Pythonは、Raspberry Piという小型コンピューターの上で動作させることができます。
先程、紹介した機械学習と組み合わせてRaspberry Pi上に画像認識用のモデルを配置し、カメラを取り付けることで画像の取得と識別を小型コンピュータの上で完結させることもできます。
ちなみに、従来は画像データをいったんサーバーに送ってサーバー上で識別を行い、その結果を端末に送信していたのに対し端末上でデータ取得、識別を完結させるこの手法をエッジコンピューティングといいます。
ただし、家電製品のマイクロチップ制御等の組み込みシステムにはC言語やアセンブリなどPython以外の言語が適している場合もあります
続いてはPythonでも可能ではあるが、必ずしもお勧めしない分野について紹介します。
Webアプリ
初めに紹介するのはWebアプリです。
Pythonで作られているWebアプリで有名なものには、Pinterest、Instagramがあります。
これらの有名なアプリが存在しているにもかかわらず、なぜPythonは必ずしもお勧めできないのでしょうか?誤解してほしくないのですが、PythonでWebアプリを作らない方が良いと言っているのではありません。
Webアプリを作ることのできる言語はPython以外にもRubyやJavaScript、Java、PHPなど様々な言語が存在します。では、数ある言語の中でPythonを使うべき時とは、いったいどのようなときでしょうか?
一つ目は、機械学習やデータ分析がバックエンドの処理に組み込まれているWebアプリを作成するときです。先程紹介したように、機械学習やデータ分析はPythonを使うことが推奨される分野です。そのような処理が背後で行われているWebアプリを作成する際には、WebアプリもPythonで作った方が合理的なことが多いです。近年、WebアプリがPythonで作られることが多くなった理由は主にこれが原因であると考えられます。
PythonでWebアプリを作ってもよい二つ目の理由は、Pythonが最も得意な言語である場合です。これは一つ目の理由と比べてやや消極的な理由ですが、Webアプリを仕事で、あるいは趣味で作るとなったときにすでにPythonには非常に詳しく、他の言語は全く詳しくないというような場合、あえて習熟度の低い他の言語に手を出すよりもPythonで作成を行う方が無難なことがあります。
デスクトップアプリ
続いて、デスクトップアプリです。
デスクトップアプリとはPCにインストールして使うアプリのことです。Pythonでもデスクトップアプリを作成することは可能です。ライブラリとしてはPythonの標準ライブラリであるTkinterのほかにPyQt、Kivyが挙げられます。しかし、WindowsアプリであればC#、Windows、Mac、Linux等の複数のOS向けのデスクトップアプリを作成したいのであればJavascriptでElectronというツールを使い作成する方がメジャーです。
このように、基本的にはデスクトップアプリの作成には別の言語を使用した方がよいのですが、例外的にPythonでデスクトップアプリを作る方がよい場合として次のような状況が考えられます。
それは、Pythonで作成した業務自動化ツールを会社内の人や特定の知人に配布するような場合です。この場合、すでにPythonで作られていることと、想定されるアプリの機能が少ない(いくつかの入力とボタンを押すだけなど)ので、あえて別言語でつくるよりもPythonで作る方が向いているといえるでしょう。
そうではなく、本格的な製品としてリリースする際には別の言語を検討しましょう。
スマホアプリ
続いてはスマホアプリです。スマホアプリもkivyというフレームワークを用いることで実装可能です。しかし、スマホアプリをわざわざPythonで作成するのはあまりメジャーなやり方とは言えないのであまりお勧めしません。スマホアプリを作りたい場合に選択すべき言語は、Androidアプリの場合は、Java、Kotlin、iPhoneアプリの場合はSwiftがお勧めです。
ゲーム開発
続いて、ゲーム開発です。ゲーム開発もPyGame、Kivyというツールを用いることでPythonでもゲーム開発が可能です。しかし、現在のゲーム開発はC#を用いたUnityやC++を用いたUnreal Engineを用いることが多いです。そもそも、PythonはC#やC++、Javaといった言語よりも実行速度が遅く、リアルタイム性が求められるゲームにはそこまで向いていないでしょう。
もちろん、趣味で簡単なゲームを作る際にはPythonを用いるのよいでしょうが、本格的なゲームを作る際にはC#やC++といった言語を使用することをお勧めします
ブロックチェーン
続いてはブロックチェーンです。ブロックチェーンもPythonで開発することはできなくはありませんが、現在、ブロックチェーンの主要なライブラリはJavaScriptで書かれているようです。
実際、ビットコインやイーサリアムなどの仮想通貨もJavaScriptで作成されています。このことからブロックチェーンに本格的に取り組みたいのであればPythonよりもJavaScriptの使用を検討するのがよいでしょう。
基幹システム
基幹システムの開発とは販売管理、在庫管理、会計など企業が業務を遂行するためのシステムです。基幹システムでPythonが使われている理由もなくはないでしょうが、どちらかというとJavaやC#が使われるケースが多いです。
理由はゲーム開発の時と同様、JavaやC#の方が実行速度に優れているからです。