気になるところへ読み飛ばす
こんにちは!
データサイエンティストのウマたん(@statistics1012)です。
大学院時代は統計学専攻でRをメインに使っていましたが、社会人になってからはもっぱらPythonを使っています。
実際のところ、RからPythonに移行してみてできることの幅は大きく広がりました!!
実際にPythonを学ぶにつれてPythonのできることの幅の広さに驚きPythonの魅力にのめり込んでいきました!
とはいえ、Pythonでできることや学ぶ意味を知ってからじゃないと本腰入れて勉強できないですよねー!
そこで、この記事ではPythonで何ができるのか!について見ていきたいと思います。
実際にPythonでのコード例も記載しているのでぜひ参考にしてみてくださいねー!
ちなみに以下のUdemy講座でPythonで出来ることについて僕自身が話していますので詳しく知りたいという方はぜひ受講してみてください!
目次
Pythonとは
まず、Pythonとはどんな言語なのか簡単にみていきましょう!
Pythonとは1991年に開発され現在全世界で非常に幅広い人に使用されている言語です。
他のプログラミング言語と比較してコードがシンプルで分かりやすく、エンジニアでなくても使いやすいのが特徴です。
そう、Pythonは簡単で分かりやすい言語でありながら非常に多くのことができる優秀な言語なんです!
最初に学ぶプログラミング言語としても最適ですよー!
Pythonでできること7つ【コード例】
そんなシンプルでプログラミング初心者にもやさしいPythonができることの幅広さはプログラミング言語の中でも随一!!
実際に何ができるのか具体的な例と共にみていきましょう!
以下のYoutube動画でも解説しています!
データ集計・加工・描画
データの集計・加工・描画に便利なnumpy/pandas/matplotlibなどのフレームワークが用意されており、簡単に行うことができます!
これらは、データ解析を行う下準備に必要になってくるので必須な初歩スキルです!
Rだとdplyrパッケージによって同等の処理ができますが、Pythonの方が圧倒的に使いやすいです。
簡単にIrisデータというあやめの花のデータをカンタンに加工・集計していきますよ!
実際に順を追って実装してみてくださいね!
data_df.head()
##data_dfの上部5行が表示
data_df.describe()
これだけの記述で統計量が確認できちゃうんです!
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の特徴は機械学習フレームワークの充実。
様々な回帰・分類手法を実際に実装することが可能です。
最新の手法も比較的早くライブラリに実装されるので、最新のトレンドをキャッチアップしやすいのが特徴です。
機械学習手法は非常に多くの種類があります。
その中でも最もよく使われる手法の1つであるLight gbmについて見ていきましょう!
Light gbmは決定木と勾配ブースティングを組み合わせた勾配ブースティング木の1種で非常に強力なことから実務でもデータ分析コンペでもよく用いられます。
ここでは、国産データコンペ Nishikaの「中古マンション価格予測」というトレーニングコンペのデータに対してLight gbmを実装してみたいと思います。
Pythonであればいとも簡単に実装することができるんです!
まず Nishikaに会員登録し中古マンション価格予測のデータから学習データとテストデータをダウンロードしてください(※会員登録をしないとデータをダウンロードできません)。
ダウンロードしたデータに対してデータフレームを作成し、前処理を施した上でLight gbm を適用させていきます。
コードは以下になります。
以下の記事でより詳しくLight gbmの実装についてまとめていますのでチェックしてみてください!
ちなみにディープラーニング(深層学習)まわりの手法も比較的カンタンに実装できちゃいます。
一般的な機械学習と比較すると高度な手法ですが、それでもPythonを使えば簡単に実装することができるんですよー!
TensorflowやKerasなどの使いやすいフレームワークが用意されているのです。
実際にディープラーニングを実装しているコードを以下に記載しておきます。
以下は手書き文字の分類タスクにディープラーニングを適用させています。
具体的には以下の記事にまとめていますので見てみてください!
本当に色々な機械学習手法が実装できます。
機械学習手法はここで取り上げたLight gbm やディープラーニング以外にもたくさんの手法がありますので気になる方は以下の記事でチェックしてみてください!
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を叩いて検索クエリを抽出するコード例を以下に載せておきまーす!
詳しい内容は以下の記事を見てみてください!
またChatGPTのAPIとPythonを組み合わせることでより自由な処理が可能になります。
例えば、”田中さんの6/30のスケジュールを教えてー!”と入力するとGPTのAPIと連携し、言葉から必要な関数を判別・実行して結果(この例だとスケジュール内容)を返答するプログラムを作成できます。
GPTのAPIを呼ぶ処理は以下になります。
def run_conversation(prompt):
# GPTのAPIへのリクエストを定義
messages = [{"role": "user", "content": prompt}]
functions = [
{
"name": "get_schedule",
"description": "特定の日付のスケジュールを取得して返す",
"parameters": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "日付"
},
"person": {
"type": "string",
"description": "人の名前"
},
},
"required": ["date","person"]
}
}
]
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo-0613",
messages=messages,
functions=functions,
function_call="auto",
)
response_message = response["choices"][0]["message"]
詳しくは以下の記事を見てください!
このように生成系AIもPythonを使って実装することが出来ます。
当メディアが運営するスタアカの以下のコースで詳しく解説しているので、チェックしてみて下さい!
Pythonを使ったAPI利用についてはより詳しく以下の記事でまとめています!
自動化
Pythonではブラウザ操作などを自動化することもできます!
例えば「Selenium」というWeb ブラウザの操作を自動化するためのフレームワークを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で動かす方法に関しては以下の記事で詳しくまとめていますので、ぜひチェックしてみてください!
また、Pythonの自動化については以下の記事で詳しくまとめています。
Webアプリケーション開発
最後がWebアプリケーション開発!!
機械学習やAPI連携・スクレイピングだけでなく、FlaskやDjangoなどのフレームワークを用いれば、サーバーサイド言語としてWebアプリケーション開発に用いることができるんです!!!
Webアプリケーションの開発は、Pythonの真骨頂でありRとの大きな違いでもあります。
ただ、RubyやPHPなどの言語と比較すると処理速度が遅いなどのデメリットも存在します。
PythonでのWebアプリ開発については以下の記事で詳しくまとめていますのでチェックしてみてください!
Flaskを用いて、有意差を計算するWebアプリケーションを作成した記事を以下にまとめています。
またDjangoでの開発については以下の記事でまとめています。
Pythonのメリット
Pythonでできることは分かってもらえたと思いますが、これらを実装できる言語は他にもあります。
データ分析が絡むなら単体で強力
まあデータ分析関係なら基本的にPythonの右に出る言語は今のところいないでしょう。
Rはグラフ描画に、Stanはモデリングに優れていたりしますが、総合的にはやはりPythonですねー!!
データ分析がしたいならPythonを選んでおいて問題はないです。
コードがシンプル
Pythonはコードの階層構造を大事にしており、それがズレると構文エラーを起こします。
最初は慣れないかもしれませんが、慣れると非常に構文がスッキリしていてどんな人が書いた構文でも比較的読みやすいです!
Udemyの以下の講座で、Python記法のルールが身に付くので興味のある方はぜひチェックしてみてください!
コードもシンプルで済みます。
できることの幅が広い
さきほど見てきましたが、できることが7つもあるのです!!
そんな言語は他には存在しません。
スクレイピングで時系列データで情報を吸い上げて、それを基に予測を行いそれを出力するWebアプリケーションなどもPythonで完結できちゃいますね
Pythonを勉強する方法
Pythonで出来ることやPythonを使うメリットが分かったところで、そんなPythonをどのように勉強していけばよいのでしょうか?
僕自身、なかなかPythonの勉強が捗らず苦労した経験があります。
そんな僕がオススメするPythonの勉強方法をまとめていきます!
僕自身、Udemy・PyQなどのサービスをコスパよく利用していました。
Pythonはできることの幅が広いので、まずはPythonを使って何をしたいのかを明確にするべきです。
Pythonで出来ることについては以下のUdemy講座を僕自身が公開していますので是非参考にしてみてください!
【実践】ビジネスケースとつなげてPythonで出来ること5つを学べる3日間集中コース
【オススメ度】 | |
---|---|
【講師】 | 僕自身!今なら購入時に「GT34R35G27DD」という講師クーポンコードを入れると94%OFFになりますのでぜひご受講ください! |
【時間】 | 3.5時間 |
【レベル】 | 初級~中級 |
手前味噌ですが、まずPythonについて理解してみるのにオススメなコースを僕自身が出しています!
Pythonで出来ることのうち以下の5つを網羅して学んでいきます。
・データ集計・加工・描画
・機械学習を使ったモデル構築
・Webスクレイピング
・APIの利用
・Webアプリケーション開発
データ集計・加工・描画と機械学習モデル構築に関してはKaggleというデータ分析コンペティションのWalmartの小売データを扱いながら学んでいきます。
WebスクレイピングとAPI利用とWebアプリケーション開発に関しては、楽天の在庫情報を取得してSlackに自動で通知するWebアプリケーションを作成して学んでいきます。
Pythonで何ができるのか知りたい!という方には一番はじめにまず受けていただきたいコースです!
Pythonを使って実現したいことが明確でない人と明確な人では勉強法が違いますので別々にみていきますね。
ちなみにこの記事で紹介してきたPythonで出来ることについては以下の書籍で小説形式でまとめていますのでよければ見てみてください!
(2024/12/10 09:25:09時点 Amazon調べ-詳細)
価格は300円ちょっとですし、Kindle unlimitedであれば無料で読めるのでぜひチェックしてみてくださいね!
Pythonで何がしたいのか明確な人にオススメの勉強法
まずは、Pythonで何がしたいのか明確な人!
独学で自走できる人におすすめのサービスを紹介していきます!
Udemy
公式サイト:https://www.udemy.com/
【価格】 | 1200円~(コース売り切り型) |
---|---|
【オススメ度】 |
何がしたいのか明確な人はUdemyで自分の実現したいことを解説してくれている講座を受講してみるとよいでしょう!
Udemyは世界最大のオンライン学習プラットフォームなんです!
・世界最大のオンライン学習プラットフォーム
・日本事業ではベネッセがパートナーになっている
・15万種類ものコース
・約3億人のユーザー登録
※2020年3月時点
コースは買い切り制で気に入らなかったら返品もできるので非常におすすめです。
こちらも手前味噌ですが、僕自身がデータ分析関連のUdemyコースを公開しています!!
【初学者向け】データ分析コンペで楽しみながら学べるPython×データ分析講座
【オススメ度】 | |
---|---|
【講師】 | 僕自身!今なら購入時に「GT34R35G27DD」という講師クーポンコードを入れると94%OFFになりますのでぜひご受講ください! |
【時間】 | 4時間 |
【レベル】 | 初級~中級 |
僕自身がUdemyの色んなコースを受けてみた中で、他のコースにはないこんなコースあったらいいなみたいなコースを作ってみました。
このコースは、なかなか勉強する時間がないという方に向けてコンパクトに分かりやすく必要最低限の時間で重要なエッセンスを学び取れるように作成しています。
アニメーションを使った概要編とハンズオン形式で進む実践編に分かれており、概要編では体系的にデータ分析・機械学習導入の文脈でまとめています。
データサイエンスの基礎について基本のキから学びつつ、なるべく堅苦しい説明は抜きにしてイメージを掴んでいきます。
統計学・機械学習の基本的な内容を学び各手法の詳細についてもなるべく概念的に分かりやすく理解できるように学んでいきます。
そしてデータ分析の流れについては実務に即したCRISP-DMというフレームワークに沿って体系的に学んでいきます!
データ分析というと機械学習でモデル構築する部分にスポットがあたりがちですが、それ以外の工程についてもしっかりおさえておきましょう!
続いて実践編ではデータコンペの中古マンションのデータを題材にして、実際に手を動かしながら機械学習手法を実装していきます。
ここでは、探索的にデータを見ていきながらデータを加工し、その上でLight gbm という機械学習手法を使ってモデル構築までおこなっていきます。
是非興味のある方は受講してみてください!
PyQ
公式サイト:https://pyq.jp
【価格】 | 3040円/月~ |
---|---|
【オススメ度】 |
PyQはPythonに特化したサービスです。
完全オンライン学習サービスで、定額制で全ての講座を受講することができます。
実際に手を動かすことをかなり重視しているので、楽しくモチベーションを保ちながら進めることが可能です。
インターフェイスが使いやすくてサクサク進められます。
正直Pythonを素早く身に付けて実装してみたい!かつお金も安く済ませたい!ならPyQ一択です。
ただ完全自力なので、モチベーションが続かないと厳しいです。
以下の記事でPyQの体験を基に詳しくレビューしています。
Pythonで何がしたいのか明確でない人にオススメの勉強法
さて、Pythonで何がしたいのか明確でない人はまずはそれを見つけることが大事なのですが無理やり見つけてUdemyで講座を購入してもなかなかモチベーションが保てず途中で辞めてしまう可能性大です。
そんな人にオススメのサービスを紹介しておきましょう!
スタビジアカデミー(スタアカ)
公式サイト:https://toukei-lab.com/achademy/
【価格】 | ライトプラン:1280円/月 プレミアムプラン:149,800円 |
---|---|
【オススメ度】 | |
【サポート体制】 | |
【受講形式】 | オンライン形式 |
【学習範囲】 | データサイエンスを網羅的に学ぶ 実践的なビジネスフレームワークを学ぶ SQLとPythonを組みあわせて実データを使った様々なワークを行う マーケティングの実行プラン策定 マーケティングとデータ分析の掛け合わせで集客マネタイズ |
データサイエンティストとしての自分の経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「スタアカ」!!
当メディアが運営するスクールです。
24時間以内の質問対応と現役データサイエンティストによる複数回のメンタリングを実施します!
カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください!
ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったり・Webサイト構築してデータ基盤構築してWebマーケ×データ分析実践してもらったりする盛りだくさんの内容になってます!
・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析
・世界最大手小売企業のウォルマートの実データを用いた需要予測
・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定
・Webサイト構築してデータ基盤構築してWebマーケ×データ分析実践して稼ぐ
テックアカデミー
公式サイト:https://techacademy.jp/
【価格】 | 163,900円~(4週間) |
---|---|
【オススメ度】 | |
【サポート体制】 | |
【受講形式】 | オンライン形式 |
【データサイエンティスト範囲】 | ベーシックな内容、ビジネスサイドはなし |
価格は3か月で284,900円!
日本最大級のプログラミングスクールで安心して受講することのできるプログラミングスクールになっています。
他のプログラミングスクールと比較して、メンターサポート制度が非常に充実しているのが特徴です。
特にメンターのレスポンスの速さは異常!!
15時~23時の時間内であれば、誰かしらが高速レスポンスで返してくれます。
チャットサポートとは別に専任のパーソナルメンターが付きます。
メンターとの相性もありますが、合わなければ代えてもらうこともできます。
テックアカデミーのAIコースの先生、超美人!!だけどすごくしっかりしていて、進め方も的確だしこれはかなり力がつくという確信があります
— ayaka@python (@ayakapython) November 28, 2018
メンターの人に頼めば自分の裁量でカリキュラムの範囲外まで詳しく学べるので自分でガツガツやる気のある人には非常にオススメです!
しっかり自分の中で目標を持ってメンターを使い倒すくらいの気概を持って進めましょう!
やる気があればメンターの方と一緒に深い内容まで踏み込んで学ぶことが可能です!
僕自身カリキュラムを猛スピードで終わらせてメンターの人とガンガン壁打ちしながら色んな分野を学んだ過去があります。
ちなみにテックアカデミーのデータサイエンティスト系の講座には以下のようなコースがあります。
ある程度言語を触ったこのある方であればAIコースやデータサイエンスコースを単体で受講してしまっても問題ありません。
また、テックアカデミーのAIコースではディープラーニングで画像認識が出来ることが最終目的でWebアプリケーションの開発などは行いません!
無料体験もできますので、不安な方はまずは無料体験を試してみることをオススメします!
以下の記事で体験談をより詳しくまとめていますので是非チェックしてみてください!
Pythonを学べるプログラミングスクールは他にもたくさんあります。以下の記事でまとめていますので是非見てみてください!
また、Pythonの勉強に関しては以下の記事で詳しくまとめていますのでチェックしてみてください!
PythonでできることのFAQ
最後に今まで解説してきたことをFAQ形式でまとめておきましょう!
Q1. Pythonでどんなことができるの?
Q2. Pythonにはどんなメリットがあるの?
Q3. Pythonを勉強するのにどんなサービスがあるの?
Pythonでできること まとめ
このように実際にあらためて見ていくと本当にPythonはできることの幅の広い優れたプログラミング言語だなーと思います。
Pythonの勉強に関しては以下の記事で詳しくまとめていますのでチェックしてみてください!
また、Pythonでは作れるものを以下の記事で解説しているので、興味がある方は以下の記事をチェックしてみて下さい。
できることがたくさんあってもやりたいことがないとなかなかプログラミング言語は継続しません。
プログラミングの勉強を挫折せず効率よく進める方法は以下の記事を見てみてください!
イラスト出典:Illustration by Stories by Freepik