こんにちは!
消費財メーカーでデータサイエンス・デジタルマーケやらにたずさわっているウマたん(@statistics1012)です。
大学院時代は統計学専攻でRをメインに使っていましたが、社会人になってからはもっぱらPythonを使っています。
実際のところ、RからPythonに移行してみてできることの幅は大きく広がりました!!
実際に自分も使ってみて良かったPythonが学べるサービス!ドドン!
実際にPythonを学ぶにつれてPythonのできることの幅の広さに驚きPythonの魅力にのめり込んでいきました!

とはいえ、Pythonでできることや学ぶ意味を知ってからじゃないと本腰入れて勉強できないですよねー!
そこで、この記事ではPythonで何ができるのか!について見ていきたいと思います。
実際にPythonでのコード例も記載しているのでぜひ参考にしてみてくださいねー!
気になるところへ読み飛ばす
目次
Pythonとは

まず、Pythonとはどんな言語なのか簡単にみていきましょう!
Pythonとは1991年に開発され現在全世界で非常に幅広い人に使用されている言語です。
他のプログラミング言語と比較してコードがシンプルで分かりやすく、エンジニアでなくても使いやすいのが特徴です。
そう、Pythonは簡単で分かりやすい言語でありながら非常に多くのことができる優秀な言語なんです!
最初に学ぶプログラミング言語としても最適ですよー!
Pythonでできること7つ【コード例】

そんなシンプルでプログラミング初心者にもやさしいPythonができることの幅広さはプログラミング言語の中でも随一!!
実際に何ができるのか具体的な例と共にみていきましょう!
以下のYoutube動画でも解説しています!
データ集計・加工・描画

データの集計・加工・描画に便利なnumpy/pandas/matplotlibなどのフレームワークが用意されており、簡単に行うことができます!
これらは、データ解析を行う下準備に必要になってくるので必須な初歩スキルです!
Rだとdplyrパッケージによって同等の処理ができますが、Pythonの方が圧倒的に使いやすいです。
簡単にIrisデータというあやめの花のデータをカンタンに加工・集計していきますよ!
実際に順を追って実装してみてくださいね!
1 2 | data_df.head() ##data_dfの上部5行が表示 |
1 | data_df.describe() |
これだけの記述で統計量が確認できちゃうんです!
1 | df.groupby('target')['sepal length (cm)'].mean() |
target
0 5.006
1 5.936
2 6.588
Name: sepal length (cm), dtype: float64
groupbyは非常にデータ集計に有用なので是非使いこなせるようにしてくださいね!
機械学習を使った回帰・分類

やはり、Pythonの特徴は機械学習フレームワークの充実。
様々な回帰・分類手法を実際に実装することが可能です。
最新の手法も比較的早くライブラリに実装されるので、最新のトレンドをキャッチアップしやすいのが特徴です。
機械学習手法は非常に多くの種類があります。
その中でも代表的な例として決定木を簡単に見ていきましょう!
決定木以外にもコード例もあわせてまとめている記事を以下に並べておきますのでぜひ見てみてください。



ちなみにディープラーニング(深層学習)まわりの手法も比較的カンタンに実装できちゃいます。
一般的な機械学習と比較すると高度な手法ですが、それでもPythonを使えば簡単に実装することができるんですよー!
TensorflowやKerasなどの使いやすいフレームワークが用意されているのです。
実際にディープラーニングを実装しているコードを以下に記載しておきます。
具体的には以下の記事にまとめていますので見てみてください!

また、勾配ブースティングと呼ばれる最先端の手法群もPythonなら余裕で実装可能!

WEBスクレイピング

WEBスクレイピングとはWEB上の情報をクロールして抽出することのできる方法です。
毎回手動でデータを引っ張ってくるのは非常に面倒であるため、スクレイピングを使って自動でデータを引っ張ってくることが多いです。
非常に応用の範囲が広い技術で、様々な場面で用いられています。
例えば、スクレイピングを使うことで株価の情報などを自動的に日々抽出して自動売買するなど応用が可能です。
スクレイピングはPythonの「Requests」「beautifulsoup」というライブラリを使えば簡単に実装可能です。
ただスクレイピングはサーバーに負荷がかかるのでスクレイピングが対象サイト内で禁止されていないか注意しましょう!
実際にURLを渡すとページ内pタグのテキストを返してくれるスクレイピングを実装したコードを載せておきます。
スクレイピングについて詳しく知りたい方は以下の記事を見てみてください!

データベース操作

なんとPythonからSQLを使うことも出来ちゃうんです!

もちろんSQLの知識は必要ですか、PythonからSQLに接続しDB操作しSQLの記述で抽出・加工し戻すことが可能です。
PythonでSqlite3を使用するコード例を以下に載せておきます。
以下の記事で詳しくまとめていますのでよければ見てみてください!

API連携

外部アプリケーションのAPIを叩いてデータ連携することが可能です。
現在は様々なアプリケーションにおいてAPIが公開されているので、どんどんAPIを取り入れていくことが重要です!!
ちなみにGoogle search consoleのAPIを叩いて検索クエリを抽出するコード例を以下に載せておきまーす!
詳しい内容は以下の記事を見てみてください!

自動化

SeleniumをPythonで動かすことによって、ブラウザ操作などを自動で行うことができるんです。
Seleniumをpip installするだけではなく、Chromeブラウザを操作するためのChrome Driverのダウンロードが必要です。
この時、使っているChromeブラウザのバージョンとChrome Driverのバージョンが一致するように気を付けましょう!
ここが一致しないと上手く動作しません。
Chrome Driverは以下のページからダウンロードしてください。
自分が使っているChromeブラウザのバージョンはブラウザ右上の3点リーダーメニューから以下のように確認することができます。


この場合使っているChromeブラウザのバージョンは84なので、Chrome Driverのバージョンも84を選ぶようにしましょう!

ダウンロードしたChrome Driverは任意のディレクトリフォルダに格納しておきましょう。
Googleで検索をして上位1位のサイトをクリックしてh2タグの情報を取得して、画面をスクリーンショットで保存する処理を以下にまとめています。
SeleniumをPythonで動かす方法に関しては以下の記事で詳しくまとめていますので、ぜひチェックしてみてください!

Webアプリケーション開発

最後がWebアプリケーション開発!!
機械学習やAPI連携・スクレイピングだけでなく、FlaskやDjangoなどのフレームワークを用いれば、サーバーサイド言語としてWebアプリケーション開発に用いることができるんです!!!

Webアプリケーションの開発は、Pythonの真骨頂でありRとの大きな違いでもあります。
ただ、RubyやPHPなどの言語と比較すると処理速度が遅いなどのデメリットも存在します。
Flaskを用いて、有意差を計算するWebアプリケーションを作成した記事を以下にまとめています。
非常にボリューミーですが、ぜひ目を通してみてください!

Pythonのメリット

Pythonでできることは分かってもらえたと思いますが、これらを実装できる言語は他にもあります。
データ分析が絡むなら単体で強力
まあデータ分析関係なら基本的にPythonの右に出る言語は今のところいないでしょう。
Rはグラフ描画に、Stanはモデリングに優れていたりしますが、総合的にはやはりPythonですねー!!

データ分析がしたいならPythonを選んでおいて問題はないです。
コードがシンプル
Pythonはコードの階層構造を大事にしており、それがズレると構文エラーを起こします。
最初は慣れないかもしれませんが、慣れると非常に構文がスッキリしていてどんな人が書いた構文でも比較的読みやすいです!
Udemyの以下の講座で、Python記法のルールが身に付くので興味のある方はぜひチェックしてみてください!
コードもシンプルで済みます。
できることの幅が広い
さきほど見てきましたが、できることが7つもあるのです!!
そんな言語は他には存在しません。
スクレイピングで時系列データで情報を吸い上げて、それを基に予測を行いそれを出力するWebアプリケーションなどもPythonで完結できちゃいますね
Pythonを勉強する方法

Pythonで出来ることやPythonを使うメリットが分かったところで、そんなPythonをどのように勉強していけばよいのでしょうか?
僕自身、なかなかPythonの勉強が捗らず苦労した経験があります。
そんな僕がオススメするPythonの勉強方法をまとめていきます!
僕自身、Udemy・PyQ・テックアカデミーなどのサービスをコスパよく利用していました。
Pythonはできることの幅が広いので、まずはPythonを使って何をしたいのかを明確にするべきです。
Pythonを使って実現したいことが明確でない人と明確な人では勉強法が違いますので別々にみていきますね。
Pythonで何がしたいのか明確な人にオススメの勉強法
まずは、Pythonで何がしたいのか明確な人!
独学で自走できる人におすすめのサービスを紹介していきます!
Udemy

公式サイト:https://www.udemy.com/
【価格】 | 1000円~(コース売り切り型) |
---|---|
【オススメ度】 |
何がしたいのか明確な人はUdemyで自分の実現したいことを解説してくれている講座を受講してみるとよいでしょう!
Udemyは世界最大のオンライン学習プラットフォームなんです!
・世界最大のオンライン学習プラットフォーム
・日本事業ではベネッセがパートナーになっている
・15万種類ものコース
・約3億人のユーザー登録
※2020年3月時点
コースは買い切り制で気に入らなかったら返品もできるので非常におすすめです。
実際にめっちゃお世話になってます笑
以下の記事でPythonの講座を実際に20コース以上受けて比較していますので是非チェックしてみてください!

ドローンやブロックチェーンなんかの講座もあるんですよー!
PyQ
公式サイト:https://pyq.jp
【価格】 | 3040円/月~ |
---|---|
【オススメ度】 |
PyQはPythonに特化したサービスです。
完全オンライン学習サービスで、定額制で全ての講座を受講することができます。
実際に手を動かすことをかなり重視しているので、楽しくモチベーションを保ちながら進めることが可能です。
インターフェイスが使いやすくてサクサク進められます。

正直Pythonを素早く身に付けて実装してみたい!かつお金も安く済ませたい!ならPyQ一択です。
ただ完全自力なので、モチベーションが続かないと厳しいです。
以下の記事でPyQの体験を基に詳しくレビューしています。

Pythonで何がしたいのか明確でない人にオススメの勉強法
さて、Pythonで何がしたいのか明確でない人はまずはそれを見つけることが大事なのですが無理やり見つけてUdemyで講座を購入してもなかなかモチベーションが保てず途中で辞めてしまう可能性大です。
そんな人にオススメのサービスを紹介しておきましょう!
テックアカデミー

公式サイト:https://techacademy.jp/
【価格】 | 139,000~ |
---|---|
【オススメ度】 |
プログラミングって挫折しやすい・・・
僕自身そういう経験しているのですーーっごい分かります・・・
そういう人にはテックアカデミーをおすすめします!
教材レベルは正直それほど高くないんですが、パーソナルメンターが付くので全然モチベーション違いますよー!お尻に火が付きます!
実際にパーソナルメンターのもとで勉強を進めて3か月で機械学習アプリケーションをデプロイできるところまで学びました。

Pythonを学べるプログラミングスクールは他にもたくさんあります。以下の記事でまとめていますので是非見てみてください!

Pythonの勉強に関しては以下の記事で詳しくまとめていますのでチェックしてみてください!

PythonでできることのFAQ

最後に今まで解説してきたことをFAQ形式でまとめておきましょう!
Q1. Pythonでどんなことができるの?
Q2. Pythonにはどんなメリットがあるの?
Q3. Pythonを勉強するのにどんなサービスがあるの?
Pythonでできること まとめ
このように実際にあらためて見ていくと本当にPythonはできることの幅の広い優れたプログラミング言語だなーと思います。
Pythonの勉強に関しては以下の記事で詳しくまとめていますのでチェックしてみてください!

Pythonでオススメのサービスは以下!
ただ、できることがたくさんあってもやりたいことがないとなかなかプログラミング言語は継続しません。
プログラミングの勉強を挫折せず効率よく進める方法は以下の記事を見てみてください!

イラスト出典:Illustration by Stories by Freepik