Python

【入門】初心者が3か月でPythonを習得できるようになる勉強法!

ウマたん
ウマたん
本記事では、Pythonを効率よく習得する勉強法についてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。

こんにちは!

事業会社でデジタルマーケター兼データサイエンティストみたいなことをやっているウマたん(@statistics1012)です。

大学院時代は統計学を専攻していたのですが、ほぼRを使用しておりPythonは手を付けていない状況でした。

しかし巷ではPython全盛期。

なんとかPythonを習得したいと思うものの長続きせず、結局中途半端に終わってしまっていました。

それもそのはず、データ解析を行うにはRで事足りることが多くPythonを使う必要はなく当時はPythonを習得するメリットはこれと言ってなかったのです。

しかし、以下の2つのサービスを使いほぼ初心者の状態から3か月である程度のデータ解析・Webアプリケーションなら実装できるようになりました。

ドドン!

PyQ
テックアカデミー

この記事ではPython初心者を抜け出すための勉強法・ロードマップについて見ていきたいと思います。

この記事で取り上げているのは以下の3つ

・Pythonで習得すべき要素と出来ること
・Pythonで出来ることをまとめたコードの公開
・Pythonを効率よく勉強できるサービス

初心者勉強のロードマップを参考に勉強を進め、並行してコードを参考にしてカスタマイズした機械学習ロジックを用いたWebアプリケーションを作っていただけると学習がはかどるかと思います。

ウマたん
ウマたん
実際にPythonを習得しやすいお題に対してコーディングしていくよ!

Pythonの特徴

まずは簡単にPythonのイメージについて見ていきましょう!

Pythonはどうしてもデータ解析のイメージが強いです。

もちろんお馴染みの機械学習手法から流行りの手法まで幅広く実装することができますが、それであればRでも問題ありません。現に大学院時代はRで困ったことはありませんでした(Rはグラフ描画や多変量解析手法に強いイメージがあります)。

以下の記事でPythonとRなどデータ解析用のプログラミング言語を比較しているのでよければご覧ください!

統計解析を行う上で便利なプログラミング言語を比較!統計学を学ぶにあたって必要なプログラミングのスキル。 世の中にはプログラミング言語を使わずとも統計処理を扱えるソフトウェアが存在し...

Pythonの真骨頂は、Webアプリケーション開発。FlaskやDjangoと言ったモジュールを用いることで簡単にWebアプリケーションを開発することができるのです。

つまりクライアントサイドからデータをもらい、そのデータに対してロジックを回し、クライアントサイドに返すといったことを一気通貫で出来てしまうのです!

それでいて変数宣言等が必要なく、簡易的なコーディングで実装できる初心者にも優しい言語なのです!

Pythonで習得すべき基礎要素・応用

Pythonで出来ることはたくさんあるので、まずは自分がPythonを使って何をしたいか明確にしておくと良いです。

ただ、その前段階で共通して習得しておかなくてはいけないこともあるので基礎編と応用編に分けていきます。

・Pythonでの基本的な記述方法が分かる
・関数・クラスが作れる
・データ解析が出来る(機械学習モジュールが使いこなせる)
・スクレイピングが出来る
・Webアプリケーションが作れる

【基礎編】習得すべき基本要素

ここではどちらにしろ共通して習得しておいた方が良い基礎要素をまとめていきます。

Pythonでの基本的な記述方法が分かる

まあこれは、それほど他の言語をある程度触ったことのある人ならそれほど苦労しない部分かもしれません。

ただ若干記述の方法が違ったり、Python独自の概念もあるのでしっかりと学びましょう!

NumpyやPandas、Matplotlibなどデータ加工や描画に関するモジュールの使い方を覚えましょう!

このフェイズでは、以下の書籍を読んでみるとよいでしょう!プログラミング言語とはなんぞやという基本的なところから教えてくれます。

そして平行してPyQというオンライン学習サービスを利用しましょう!

基本的な文法から勉強することができPythonに特化しているのでクオリティが高い!価格は3000円/月なので書籍1冊ほどのお値段です!

なかなかPythonに特化してここまで教えてくれるオンライン学習プラットフォームはありません。

クエスト形式で進んでいくので達成感もありますし、価格も安め!

ただ、実際に開発環境を作るのではなくPyQが用意してくれたプラットフォームを使うのでPyQだけやっても実務で回すときはまた違う設定が必要になります。

実際に自分でJupyter notebookを立ち上げたりコマンドプロンプトから入力して実装してみることを忘れないでください。

関数・クラスが作れる

関数・クラスの概念も他のプログラミング言語触ったことのある人なら問題ないかもしれませんが、初心者には非常に取っつきにくいところです。

一旦理解してしまえばそれほど難しくはありません。後ほど紹介する書籍に分かりやすく書いてあります。

昔、Javaのオブジェクト指向でつまづいてプログラミング投げ出した記憶があります笑

ここのフェイズでも先ほど紹介した書籍とPyQで学習してきましょう!

データ解析では関数・クラスは一見いらなそうですが、オートメーションに組み込む際などは必要になってきます。

【応用編】Pythonで出来ること

ここまでは、基本的にPythonを使用する上で誰しもある程度必要になる基礎要素をお伝えしてきました。

ここからは、自分がPythonを使ってやりたいことを明確にしてどれかつまみ食い的に勉強して大丈夫な領域です。

まあ色々出来た方がPythonを使用する意味は高まるのでなるべく色々できるようになることをオススメします。

データ解析が出来る(機械学習モジュールが使いこなせる)

データ解析を行う上でのモジュールは比較的たくさんありますので、それが使いこなせるようになっておきましょう!

正直、Pythonは最新の手法であれモジュールとしてインポートし使用することができるのでアルゴリズムを精緻に理解する必要はありません。

しかし、まるっきり分からないと結果の解釈を誤ってしまう可能があるのである程度の理解はしておくべき。

統計学に関して不安な方はそちらも学んでおきましょう!

統計学入門に必要な知識と勉強方法を簡単に学ぼう!当ブログ【統計ラボ】の本記事では、統計学入門に必要な知識をカンタンにまとめ、それらをどのように効率的に勉強していけばよいかをお話ししていきます。統計学は難しいイメージがイメージが少しありますが、学び方をしっかり考えれば大丈夫!...

また、さらに深くディープラーニング等を学びたいのであれば、テックアカデミーのAIコースがオススメです。

テックアカデミーは個人的にめちゃくちゃオススメ!体験記事を挙げているので参考にしてみてください!

【体験談】テックアカデミーの評判は?3か月で分かった良いトコ・悪いトコ当ブログ【統計ラボ】では、様々なプログラミングスクールの中からテックアカデミーのメリット・デメリット・評判について3か月の体験談をもとに赤裸々にレビューしていきます。...

AIの活用に関しては以下の記事にもまとめているのでよければご覧ください!

人工知能(AI)とは?ビジネスに活かすためにはどうすればよいのか?こんにちは!ウマたん(@statistics1012)です。 大学院時代は統計科学を専攻しており、現在は消費財メーカーでデジタルマーケ...

スクレイピングが出来る

スクレイピングとは、Web上のデータを抽出する作業。こちらもPyQで学ぶことが可能です。

スクレイピングを自動的に行えばネットに落ちている様々な情報を一挙に吸い上げることが可能です。

スクレイピングをする上では、インターネットの構造とHTMLやCSSの理解が必要になります。

正直HTML・CSSを0から書ける必要はありません。

クロームのディベロッパーツールを使ってWebブラウザを見ながら構造を勉強するとよいでしょう!

ディベロッパーツールに関しては以下の記事にまとめています!

マーケター必読!ディベロッパーツールの使い方!こんにちは! 消費財メーカーでデジタルマーケティングに携わるウマたん(@statistics1012)です。 みなさんは、C...

またスクレイピングすることができるレベルのHTML・CSS・Javascriptを学ぶ本として以下の書籍が超超超名著なので読んでみてください。Kindle版しかないみたい。

「WEBマーケターのためのテクノロジー入門:Webマーケターにとって必要十分なプログラミング・テクノロジーの基礎を解説」

「WEBマーケターのためのテクノロジー入門」はWebマーケター必読書だ!こんにちは! 消費財メーカーでデジタルマーケターやってるウマたん(@statistics1012)です! 大学院では統計学を...

APIを利用できる

世の中にはたくさんのサービスが提供してくれているAPIが存在します。

APIを利用することで自分で0から作り込まなくても様々なことができるんです!

Google search consoleのAPIを叩いてみた記事を以下に挙げています。

PC
Pythonを使ってGoogle search consoleのAPIを叩いてみた!5000行出力! こんにちは! 消費財メーカーでデジタルマーケターやらデータサイエンティストっぽいことをしているウマたん(@statistics101...

データベースを操作できる

Sqlite3というライブラリを使用すればSQLと同様なカタチでデータベース操作を行うことができます。

もちろんSQLの記法が分かっていないといけないので以下の記事も参考にしてみてください。

SQLを最速でマスターできるオススメ本と勉強方法!こんにちは! 都内でデジタルマーケターとして働くウマたん(@statistics1012)です。 大学院時代はRで主にデータ...

Webアプリケーションを開発できる

ここがPythonの特徴でもあるのですが、今までサーバーサイド言語を扱ったことのない人にはハードルの高い部分かもしれません。

僕もサーバーサイド言語はノータッチでした。

実際にWebアプリケーションとして落とし込むにはHTML・CSS・Javascriptの知識も必要になってくるので同時に学習しましょう!

このフェイズでもPyQで十分OK!

PyQはまじで優秀なのでPythonを短期間でしっかり勉強したいのなら是非利用しましょう!

PythonにはFlaskというDjangoというWebアプリケーション作成のフレームワークがあるのですがどちらも利用することが可能です。

PyQについては以下の記事で詳しくまとめています!

【体験談】PyQの評判は?3か月本気でPythonを勉強してみたので徹底レビュー!PyQはPythonを学ぶ上で非常にオススメで評判の高いサービスです。ただ、他のサービスとの違いが分かりにくいのも事実。そこで当ブログ【統計ラボ】では、実際にPyQを3か月体験した僕がPyQのメリット・デメリット・評判について徹底的にレビューしていきます!...

Pythonを習得するための課題

先ほどのPython習得におけるいくつかの要素。

それらを同時に習得できるプログラムを作っていきましょう!笑

僭越ながら、少し前までPython初心者だった僕でもこんなの作れるんだぞ!という証明も含めて解説していきます。

ウマたん
ウマたん
そんなのあるのか!?

正直無理やり感ありますが・・・

今回作っていくのは、

Webフォーム上にURLを入力すると、スクレイピングによってテキスト情報を抽出し、そこから形態素解析を行いテキスト類似度を算出し、データベース(これはおまけ)に格納、最終的にフォームに入力したURL同士のテキスト類似度を表示するWebアプリケーション

です。

まさにこれを作れば、先ほどの様々な応用要素が習得でき・・・そう・・・?

ガツンとコードだけ先に載せちゃいます。PythonファイルとHTMLファイルを作成していきます。

いきなり長ったらしいコードが現れましたが、順番に見ていきましょう!

Pythonのスクレイピングを習得

まずは、Pythonでスクレイピングを習得していきます。

スクレイピングを行うにはbeautifulSoupというモジュールを使います。

Pythonにおけるスクレイピングに関して詳細は以下の記事をご覧ください!

PC
Pythonのbeautifulsoupでスクレイピングを実装してみよう!こんにちは! 消費財メーカーでデジタルマーケティングに携わっているウマたん(@statistics1012)です! Webサ...

スクレイピングの部分だけ抜き出して見ていきます!

スクレイピング用のクラスを作成しています。

article1_content=soup.find_all(“p”)でpタグを指定して抽出しています。ここを変えれば別のタグの中身を抽出することが可能です。

Pythonで形態素解析をしてテキスト類似度計算

続いて、MeCabを使って形態素解析を行い、td-idfとcos類似度を用いてテキスト類似度を算出していきます。

MeCabをPythonで使うには少し設定が必要だったりするのですが、詳しくはこちらの記事をご覧ください。

PC
PythonのMeCabで形態素解析!文書の類似度を算出してみよう!こんにちは!デジタルマーケターのウマたん(@statistics1012)です! そんな時に有用なのがMeCab(...

形態素解析・テキスト類似度の部分だけ抜き出して見ていきます!

ここでもそれらのクラスを作成しています。

形態素解析をして得られた結果から名詞だけを抜き出して、助詞等を除いています。

td-idfとcos類似度はnumpyとsklearnを用いれば簡易的に計算することが可能です。

Pythonでデータベースを操作する

続いてはPythonを使ってデータベースを操作していきます。

詳しくは以下の記事にまとめていますのでご覧ください!

PythonのSqlite3を使ってデータベースを操作する方法を見ていこう!こんにちは! 消費財メーカーでデジタルマーケティングに携わっているウマたん(@statistics1012)です。 Pyth...

データベース操作部分だけ抜き出して見ていきます!

細かい処理が必要なのですが、基本的にはsqlite3.connect()でデータベースを作成し、executeメソッドでSQLを実行していきます。

PythonでWebアプリケーションを作成

ここの部分が一番重いですね。HTMLも作成するのでPython以外の知識もある程度必要になってきます。

こちらの記事をはじめに読んでいただくと理解が進みやすいと思います。有意差を算出してくれるWebアプリケーションを作成しています。

macとsurface
PythonのFlaskで簡単なWebアプリケーションを作ってみよう!こんにちは!デジタルマーケターのウマたん(@statistics1012)です! Webブラウザで動くアプリケーションのことをWe...

今回のプログラムで特別行っているところはローディング時にローディングのgif画像を差し込むという処理です。

これがあるとユーザーにとっては計算中なんだなということが分かり親切ですが、あってもなくても構いません。

Flaskを使ってWebアプリケーションを作成する部分は少し複雑ですが、こういうもんだと思って覚えるしかありません。

HTMLとの整合性が合うように命名等気を付けましょう!

これで終了!Flaskを使う場合はpythonファイルと同じディレクトリにtemplatesフォルダを作成し、その中にhtmlファイルを置かないといけないので注意しましょう!

画像ファイルはimgフォルダ、css・jsはstaticフォルダと決まっています。

ちなみに今回はURLでもテキストでもどちらを入力しても判定できるようなUIにしました。

是非、このスクリプトをまねて何かWebアプリケーションを勉強がてら作ってみてください!

Pythonの勉強を進めるおすすめサイト

最後にこれらのPython勉強を進めるおすすめサイトを紹介していきます。

ある程度、本で学ぶこともできますが正直しっかり学ぶならサービスを利用した方が効率が良いです。

何回か登場しているサービスもありますが、最後にまとめておきましょう!

PyQ

PyQ トップページ
【価格】3040円/月~
【オススメ度】

PyQはPythonに特化したサービスです。

完全オンライン学習サービスで、定額制で全ての講座を受講することができます。

実際に手を動かすことをかなり重視しているので、楽しくモチベーションを保ちながら進めることが可能です。

インターフェイスが使いやすくてサクサク進められます。

PyQ インターフェイス

プランはプロに質問ができて過去の質問も閲覧できるスタンダードプランと講座の受講だけできるライトプランがあります。

不安ならスタンダードプランをオススメしますが、ライトプランでも問題なく進められます。

正直Pythonを素早く身に付けて実装してみたい!かつお金も安く済ませたい!ならPyQ一択です。

以下の記事でPyQの体験を基に詳しくレビューしています。

【体験談】PyQの評判は?3か月本気でPythonを勉強してみたので徹底レビュー!PyQはPythonを学ぶ上で非常にオススメで評判の高いサービスです。ただ、他のサービスとの違いが分かりにくいのも事実。そこで当ブログ【統計ラボ】では、実際にPyQを3か月体験した僕がPyQのメリット・デメリット・評判について徹底的にレビューしていきます!...

Udemy

Udemy
【価格】3000円~(コース売り切り型)
【オススメ度】

Udemyは様々な専門知識が学べるプラットフォーム!

Pythonに特化したプラットフォームではありませんが、Python関連の講座も大量にあります。

Udemyでは、好きな講座を売り切り価格で購入することができるので自分のレベルに合った講座だけをつまみ食いして勉強することが可能です!

また講座別の評価も明記してあるので、選びやすいです!

PyQでは学ぶことが出来ないディープラーニングなども学ぶことが出来ます。

網羅出来ている範囲は一番広いと言えます。

自分のレベルややりたいことに合わせて受講することが可能なのがいいですねー!

ちなみにコースによってはセール価格で購入できる場合があります!

テックアカデミー

テックアカデミートップページ
【価格】139,000~
【オススメ度】

テックアカデミーは、オンライン学習ですが現役エンジニアのパーソナルメンターがつくので分からないところも解消しやすく独学で進めるよりは圧倒的に進みが早いです。

価格は3か月で239,000円!

テックアカデミー 価格表

価格が高い分お尻に火が付きますが、テックアカデミーは教材のクオリティが低く、ネットで無料で学べるレベルです。

メンターのレベルは非常に高いので自分のやる気さえあれば教材の範囲を超えた内容をガツガツ学ぶことが可能!

僕自身3か月のコースを1か月で終わらせて、応用をガツガツ学んでました。

どちらにせよやる気があって良い意味でメンターを使い倒せる自信があるのであればテックアカデミーは非常にオススメです!

※メンターは変更を願い出れば変えられます。

Python関連のコースは以下の4つがあります。

・Pythonコース
・はじめてのAIコース
・AIコース
・データサイエンスコース

Pythonが全くのはじめての場合はPythonコースを受講して、その後に画像認識などAIの活用まで踏み込みたいならAIコース、機械学習などを使った予測やデータ分析を深めたいならデータサイエンスコースに移りましょう!

複数コースを並行して学習するセットパックもあります。

テックアカデミーについては以下の記事で体験談をまとめていますので是非チェックしてみてください!

【体験談】テックアカデミーの評判は?3か月で分かった良いトコ・悪いトコ当ブログ【統計ラボ】では、様々なプログラミングスクールの中からテックアカデミーのメリット・デメリット・評判について3か月の体験談をもとに赤裸々にレビューしていきます。...

これらのサービス以外にもいくつかPythonを学べるサイトがあります。

以下の記事でより詳細にまとめていますので参考にしてみてください!

Python サイト
【入門者向け】Pythonを効率良く学習できるサイト5選!当ブログ【統計ラボ】の本記事では、入門者向けにPythonを効率よく学習するサイトを紹介していきます!複数のサイトがありますのでメリット・デメリットについて見ながら点数付けをしていきます。ぜひ自分に合ったPython学習サイトを見つける上での参考にしてください!...

おすすめなのはPyQテックアカデミーのAIコースを3か月間並行して、Udemyも適宜自分に合わせて購入するというもの。

僕の場合、PyQとテックアカデミーを並行して進めながらテックアカデミーのメンターにディープラーニングRNNそしてWebアプリケーションのデプロイ方法なんかを聞いて自分で進めていました。

Python勉強を挫折しないためには

最後にPython学習を挫折しない方法を少しだけお話しておきましょう。

プログラミング勉強において重要なのは、目的を明確にしておくことです。

なんとなく惰性でプログラミングを勉強しようとしてもそう簡単には上手くいきません。

実際、大学院時代に流行りの手法だからとPythonに取り組んでみましたが結局上手くいかず・・・

今回のように実際に実装したいモノが明確にあれば習得しやすいです。(作りたいモノに対する熱量にもよります)

もし、実装したいモノが特にない場合、ある程度強制的に目標を作ることをオススメします!

強制的に目標を作るにはやはり先ほど紹介したテックアカデミーなどのプログラミングスクールに通うことをオススメします!

基本的にはオンライン学習コンテンツを進めていくものになりますが、現役エンジニアのメンターがついて分からないことは素早く対応してくれます。

正直かなりの大金を払うことになるのでやらざるを得ない状況に追い込まれますしメンターチェックが入るのでお尻に火がつきます。AIコースを受講しましたが割と大変でした・・・

教材のレベルというよりメンタリングにお金を払っているイメージです。

【体験談】テックアカデミーの評判は?3か月で分かった良いトコ・悪いトコ当ブログ【統計ラボ】では、様々なプログラミングスクールの中からテックアカデミーのメリット・デメリット・評判について3か月の体験談をもとに赤裸々にレビューしていきます。...

プログラミングを習得するのにオススメな方法について以下の記事でまとめています!

PC
プログラミングを挫折しないで勉強し続けるために重要な3つの秘訣!こんにちは! 事業会社でWebマーケ・データ解析屋さんとしてお仕事をしているウマたん(@statistics1012)です。 ...

Pythonを習得する勉強法 まとめ

長々と書いてきましたが、結局のところPythonは手段でしかないので目的がないと習得もクソもありません。

PyQ等である程度の基礎知識を付けた後は、自分で実装したいと思うWebアプリケーションを作ってみると良いでしょう。

今回紹介したWebアプリケーションをマネて何か作るもよし、強制力を付けるためにテックアカデミーなどのプログラミングスクールに通うもよし!

それは人それぞれ!

ただ必ずPythonを使って何を達成したいのかは念頭においておくようにしましょう!

Pythonを初学者が最短で習得する勉強法

Pythonを使うと様々なことができます。しかしどんなことをやりたいかという明確な目的がないと勉強は捗りません。

Pythonを習得するためのロードマップをまとめましたのでぜひチェックしてみてくださいね!