tag:crieit.net,2005:https://crieit.net/users/tankazunori0914/feed kazu (AI Academy今なら無料)の投稿 - Crieit Crieitでユーザーkazu (AI Academy今なら無料)による最近の投稿 2018-11-12T21:28:55+09:00 https://crieit.net/users/tankazunori0914/feed tag:crieit.net,2005:PublicArticle/14600 2018-11-12T21:28:55+09:00 2018-11-12T21:28:55+09:00 https://crieit.net/posts/Python 【保存版・初心者向け】Python 目的別チュートリアル <p><img width="644" alt="スクリーンショット 2018-11-09 14.34.46.png" src="https://qiita-image-store.s3.amazonaws.com/0/195675/5bce4631-3d40-d75e-67af-ecfa17679491.png"></p> <h2 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://aiacademy.jp">AI Academy</a>を開発・運営しています、<a target="_blank" rel="nofollow noopener" href="https://twitter.com/tankazunori0914">サイバーブレイン株式会社代表の谷</a>です。</p> <p>近年機械学習等で人気のPythonですが、Pythonで出来ることは機械学習以外にも多くあります。<br /> そこで、初学者の方は<strong>機械学習以外でPythonで何が出来るのか?</strong>また、<strong>何から手をつけて行けば目的を達成できるのか?</strong>など疑問を持つかと思います。<br /> この記事が多くの方々のお役に立てれば幸いです。</p> <h2 id="この記事の対象者"><a href="#%E3%81%93%E3%81%AE%E8%A8%98%E4%BA%8B%E3%81%AE%E5%AF%BE%E8%B1%A1%E8%80%85">この記事の対象者</a></h2> <p>・Pythonで何ができるのか知りたい方<br /> ・Pythonを使って自身のしたいことを最短ルートで実現したい方</p> <h2 id="対象ではない方"><a href="#%E5%AF%BE%E8%B1%A1%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%84%E6%96%B9">対象ではない方</a></h2> <p>・普段仕事でPythonを使われている方<br /> ・Pythonに興味のない方</p> <h2 id="なぜPythonなのか"><a href="#%E3%81%AA%E3%81%9CPython%E3%81%AA%E3%81%AE%E3%81%8B">なぜPythonなのか</a></h2> <p>なぜ複数あるプログラミング言語の中で、Pythonをお勧めしているかと言いますと、2つ挙げられます。</p> <p>まず、<strong>PythonはC言語などに比べ、比較的容易に習得しやすく、多くのことができること。</strong></p> <p>次に、<strong>機械学習のライブラリの充実に加え、様々なライブラリが豊富です。</strong><br /> Web開発もできますし、Webスクレイピング、データ分析などなどです。</p> <h2 id="Pythonでできること"><a href="#Python%E3%81%A7%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%93%E3%81%A8">Pythonでできること</a></h2> <p>Pythonでできることは、次のようなことが出来ます。</p> <pre><code>1. Webスクレイピング 2. 機械学習・ディープラーニング・最適化 3. テキストマイニング 4. データ分析 5. 画像認識・画像処理 6. 業務効率化プログラム 7. Webアプリケーション開発 8. ネットワーク・サイバーセキュリティプログラミング 9. ゲーム開発 10. Androidアプリ開発 11. デスクトップアプリ制作 12. データベース操作 13. 並列化 14. インフラ構築自動化 15. グラフィックス 16. 非同期処理 </code></pre> <p>『11. デスクトップアプリ制作』以降は他のプログラミング言語でもできる事が多いですが、それらを除いてもPython言語1つで、非常に多くのことができることがわかるかと思います。この記事では主に1~10までに関して記述していきます。</p> <h2 id="Pythonが学べるサイトは?"><a href="#Python%E3%81%8C%E5%AD%A6%E3%81%B9%E3%82%8B%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AF%EF%BC%9F">Pythonが学べるサイトは?</a></h2> <p>全くのプログラミング初心者は、<a target="_blank" rel="nofollow noopener" href="https://prog-8.com/">Progate(プロゲート)</a>をお勧めします。</p> <p>既に、Pythonの基本文法が既知であり、Pythonで多くの事を実現できるようになりたい方は次の動画の購入を強くお勧めいたします。</p> <p><a target="_blank" rel="nofollow noopener" href="https://www.udemy.com/python-beginner/">Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする</a></p> <p>最初に挙げた多くのことが網羅されており、大変わかりやすく非常にお勧めです。</p> <p>また手前味噌ですが、<a target="_blank" rel="nofollow noopener" href="https://aiacademy.jp">AI Academy</a>も合わせてご利用頂けますと幸いです。他のプログラミング学習サービスとの違いは、受講者の目的に応じてカリキュラムを最適化している点です。</p> <p>他にも有料サービスとして、PyQやAidemy、動画サービスですと先ほど紹介したUdemyやドットインストールなどがありますので、ご自身にあうサービスを選んで学んで頂けたらと思います。</p> <h1 id="どのようにPythonを学べば良いか?"><a href="#%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%ABPython%E3%82%92%E5%AD%A6%E3%81%B9%E3%81%B0%E8%89%AF%E3%81%84%E3%81%8B%EF%BC%9F">どのようにPythonを学べば良いか?</a></h1> <p>先ほど紹介したProgateに加え、AI Academyで、自身の目的にあったコースを選んで頂き進めて頂けたらと思います。<br /> そして、より詳細に学んでいきたい方はこれから紹介する項目からやりたい内容を選び参考にして頂けたらと思います。<br /> それではPythonでできることを1つ1つ詳細に見ていきましょう。</p> <h1 id="Webスクレイピング"><a href="#Web%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0">Webスクレイピング</a></h1> <p>Webスクレイピングとは、Web上からデータを取得することができる技術です。</p> <p>・毎日発信されるAIに関するニュースをスクレピング<br /> ・会員制ECサイトに自動的にログインして、そのサイトでの直近の購入履歴を取得する</p> <p>これらのことは、Webスクレイピングで実現できます。<br /> PythonでWebスクレイピングするには、<strong>selenium</strong>や<strong>beautifulSoup</strong>といったライブラリを利用します。</p> <p><a target="_blank" rel="nofollow noopener" href="https://aiacademy.jp/texts/#web">AI Academy Webスクレイピング</a></p> <p>・オススメ書籍<br /> Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-</p> <p><img src="https://qiita-image-store.s3.amazonaws.com/0/195675/fd5b17e8-0cc0-d854-536c-f817627f7538.jpeg" alt="51IiWeYB-7L._SX399_BO1,204,203,200_.jpg" /><br /> <a target="_blank" rel="nofollow noopener" href="http://amzn.asia/d/6dB1o9K">http://amzn.asia/d/6dB1o9K</a></p> <h1 id="機械学習"><a href="#%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92">機械学習</a></h1> <p>scikit-learnやTensorFlowなどを扱うことで機械学習の主要なアルゴリズムを扱うことが出来ます。<br /> 機械学習における必須のライブラリは、NumPy,Pandas,Matplotlib/seaborn/scikit-learnなどがあります。<br /> 他にも画像領域ですと、keras,OpenCV,Pillow、テキスト領域ですと、mecabやGensimなども使えるようになると良いです。</p> <p>AI Academyでは、下記リンクから機械学習のアルゴリズムをscikit-learnを使って、手を動かしながら学ぶことができます。<br /> <a target="_blank" rel="nofollow noopener" href="https://aiacademy.jp/texts/#ml">AI Academy機械学習</a></p> <p>勉強方法など詳しくは下記記事をご参考ください。</p> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/tani_AI_Academy/items/4da02cb056646ba43b9d">【保存版・初心者向け】独学でAIエンジニアになりたい人向けのオススメの勉強方法</a></p> <h1 id="テキストマイニング"><a href="#%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%9E%E3%82%A4%E3%83%8B%E3%83%B3%E3%82%B0">テキストマイニング</a></h1> <p>テキストマイニングとは文字列を対象にしたデータマイニングのことで、文章などの大量のテキストデータから言語解析や統計解析などを活用し、『意味のある情報』を取り出すことでテキストデータの分析手法です。</p> <p>Pythonのライブラリでは、<strong>mecab</strong>や<strong>gensim</strong>などを使うと実現できます。</p> <p>SNSの投稿(Twitterのツイートなど)を分析したり、アンケートの分析が可能です。</p> <h1 id="データ分析"><a href="#%E3%83%87%E3%83%BC%E3%82%BF%E5%88%86%E6%9E%90">データ分析</a></h1> <p>Pythonでデータ分析をしたい場合は、<strong>Pandas</strong>というライブラリを使います。<br /> また、matplotlibやseabornというライブラリも合わせて使えるとグラフを描画することもできます。</p> <p>・オススメ書籍<br /> Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理<br /> <img src="https://qiita-image-store.s3.amazonaws.com/0/195675/db0d2056-5cd7-5567-46fd-359543e738ce.jpeg" alt="download.jpg" /><br /> <a target="_blank" rel="nofollow noopener" href="http://amzn.asia/d/3jlYXKd">http://amzn.asia/d/3jlYXKd</a></p> <h1 id="画像認識・画像処理"><a href="#%E7%94%BB%E5%83%8F%E8%AA%8D%E8%AD%98%E3%83%BB%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86">画像認識・画像処理</a></h1> <p>画像認識では、ディープラーニングが扱えるライブラリ(kerasやTensorFlowなど)を使って写真に写っている画像が何かを検出することができます。<br /> <a target="_blank" rel="nofollow noopener" href="https://aiacademy.jp/texts/#dl_experience">AI Academy 画像認識</a></p> <p>画像処理をしたい場合は、OpenCVやPillowなどの画像処理ライブラリを使うと実現できます。</p> <h1 id="業務効率化プログラム"><a href="#%E6%A5%AD%E5%8B%99%E5%8A%B9%E7%8E%87%E5%8C%96%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0">業務効率化プログラム</a></h1> <p>Pythonを使うと、先ほどのスクレイピングを使って、データを自動で収集したり、Excel処理ができたり、たくさんのフォルダを一瞬で作成したり、Twitterのユーザーを自動でフォローしたり、1000人に一括メールを送ったりなど様々なことが出来ます。</p> <p>これらの内容の一部は、下記書籍で学ぶことが出来ます。</p> <p>・オススメ書籍<br /> 退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング<br /> <img src="https://qiita-image-store.s3.amazonaws.com/0/195675/93468749-ae32-daa2-f72f-476e81799e51.jpeg" alt="51hk+5bKNrL._SX352_BO1,204,203,200_.jpg" /></p> <p><a target="_blank" rel="nofollow noopener" href="http://amzn.asia/d/3besjKA">http://amzn.asia/d/3besjKA</a></p> <p>チャトボットで問い合わせ自動化したい場合は、次の動画を購入するのを強くオススメ致します。</p> <p><a target="_blank" rel="nofollow noopener" href="https://www.udemy.com/ai-ytxof/">挨拶から店舗予約まで!手を動かして学ぶAIチャットボット開発入門</a></p> <h1 id="Webアプリケーション開発"><a href="#Web%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA">Webアプリケーション開発</a></h1> <p>Pythonでは、FlaskやDjangoといったライブラリを使うことで、Webアプリケーション開発ができます。</p> <p>具体的には次のようなことが出来ます。</p> <pre><code>Djangoを使ったTwitterクローン作成 FlaskとMySQLでToDoアプリを実装しよう 機械学習で花を判定するWebアプリケーションを作ろう! </code></pre> <p>これら全ては、<a target="_blank" rel="nofollow noopener" href="https://aiacademy.jp/texts/#api">AI Academy Web開発</a>を元に進めると作ることが出来るようになります。</p> <p>・オススメ書籍<br /> 現場で使える Django の教科書《基礎編》<br /> <img src="https://qiita-image-store.s3.amazonaws.com/0/195675/db989ea7-cff9-926b-4715-f71e3a94cc5b.jpeg" alt="41vG221V8dL._SX352_BO1,204,203,200_.jpg" /></p> <p><a target="_blank" rel="nofollow noopener" href="http://amzn.asia/d/cygNnDN">http://amzn.asia/d/cygNnDN</a></p> <h1 id="Androidアプリ開発"><a href="#Android%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA">Androidアプリ開発</a></h1> <p>Pythonでは、<a target="_blank" rel="nofollow noopener" href="https://www.qpython.com">QPython</a>や<a target="_blank" rel="nofollow noopener" href="https://kivy.org/#home">Kivy</a>を用いることでAndroidのアプリケーションを開発することが可能です。</p> <p>ですが、本格的なAndroidアプリ開発をされる場合は、<strong>Java</strong>や<strong>Kotlin</strong>を使う方が、ネット上に情報量多かったり、多くのAndroidアプリはJavaで開発されているのでPythonではない方が良かったりします。</p> <h1 id="ゲーム開発"><a href="#%E3%82%B2%E3%83%BC%E3%83%A0%E9%96%8B%E7%99%BA">ゲーム開発</a></h1> <p>Pythonでゲームを作るライブラリは<a target="_blank" rel="nofollow noopener" href="https://www.pygame.org/news">Pygame</a>、<a target="_blank" rel="nofollow noopener" href="https://kivy.org/#home">Kivy</a>や<a target="_blank" rel="nofollow noopener" href="https://docs.python.jp/3/library/tkinter.html">Tkinter</a>などあります。</p> <p>・オススメ書籍<br /> ゲームを作りながら楽しく学べるPythonプログラミング<br /> <img src="https://qiita-image-store.s3.amazonaws.com/0/195675/3d083724-3314-6d5f-999b-0c13667d6333.jpeg" alt="51vd-anoLyL._SX351_BO1,204,203,200_.jpg" /><br /> <a target="_blank" rel="nofollow noopener" href="http://amzn.asia/d/gni454S">http://amzn.asia/d/gni454S</a></p> <h1 id="ネットワーク・サイバーセキュリティプログラミング"><a href="#%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%BB%E3%82%B5%E3%82%A4%E3%83%90%E3%83%BC%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0">ネットワーク・サイバーセキュリティプログラミング</a></h1> <p><a target="_blank" rel="nofollow noopener" href="https://scapy.net">Scapy</a>を使う事で、パケット生成や送受信が可能です。<br /> (セキュリティ脆弱性診断に特化したKali Linux(カーリーリナックス)にはデフォルトでインストールされていたりします。)</p> <p><a target="_blank" rel="nofollow noopener" href="https://docs.python.jp/3/library/urllib.request.html">urrlib</a>などを使う事でGETリクエストなどが可能です。</p> <p>・オススメ書籍<br /> サイバーセキュリティプログラミング ―Pythonで学ぶハッカーの思考<br /> <img src="https://qiita-image-store.s3.amazonaws.com/0/195675/97024567-5798-2775-85dd-7dca4b141985.jpeg" alt="518ZyCCEKGL._SX350_BO1,204,203,200_.jpg" /></p> <p><a target="_blank" rel="nofollow noopener" href="http://amzn.asia/d/4x7OMN3">http://amzn.asia/d/4x7OMN3</a></p> <h1 id="その他(人工生命)"><a href="#%E3%81%9D%E3%81%AE%E4%BB%96%EF%BC%88%E4%BA%BA%E5%B7%A5%E7%94%9F%E5%91%BD%EF%BC%89">その他(人工生命)</a></h1> <p>ALife(人工生命)」は、「AI(人工知能)」の発展系として、近年改めて注目されつつある分野ですがこの分野の内容は次の書籍などが丁寧です。</p> <p>・オススメ書籍<br /> 作って動かすALife ―実装を通した人工生命モデル理論入門<br /> <img src="https://qiita-image-store.s3.amazonaws.com/0/195675/f2cfcbfe-2d68-3e74-853d-2883881f4307.jpeg" alt="516dQmDuT3L._SX350_BO1,204,203,200_.jpg" /></p> <p><a target="_blank" rel="nofollow noopener" href="http://amzn.asia/d/6v46F2O">http://amzn.asia/d/6v46F2O</a></p> <h1 id="学習ロードマップ"><a href="#%E5%AD%A6%E7%BF%92%E3%83%AD%E3%83%BC%E3%83%89%E3%83%9E%E3%83%83%E3%83%97">学習ロードマップ</a></h1> <p>次の図で、自身がどれに適しているか確認してみてください。</p> <p><img width="644" alt="スクリーンショット 2018-11-09 14.34.46.png" src="https://qiita-image-store.s3.amazonaws.com/0/195675/5bce4631-3d40-d75e-67af-ecfa17679491.png"></p> <p>右向き矢印の名称は各ライブラリ名になります。<br /> ライブラリはpipなどのコマンドを使うことでインストールができます。</p> <h1 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h1> <p>この記事ではこれからPythonを学びたい初学者に向けて、<br /> ・Pythonをこれから勉強しようと考えているが、何から手をつければ良いのか?<br /> ・何から学ぶと自分の目的を達成できるのだろう?<br /> などの悩みを解消できればと思い執筆しました。</p> <p>Pythonでは多くの事ができるプログラミング言語だという事がお分かり頂けたかと思います。是非Pythonを学んで、読まれている方々の目的が最短で実現できれば幸いです。</p> <h1 id="この記事を書いた人"><a href="#%E3%81%93%E3%81%AE%E8%A8%98%E4%BA%8B%E3%82%92%E6%9B%B8%E3%81%84%E3%81%9F%E4%BA%BA">この記事を書いた人</a></h1> <p><img src="https://qiita-image-store.s3.amazonaws.com/0/195675/a4bad386-6700-4b9e-6a33-368a92c7ae6c.jpeg" alt="37741205_1003841679788059_2705403151040643072_n.jpg" /></p> <p>サイバーブレイン株式会社<br /> 代表取締役CEO 谷 一徳</p> <p>フォローお待ちしております!<br /> <a target="_blank" rel="nofollow noopener" href="https://twitter.com/tankazunori0914">Twitter</a><br /> <a target="_blank" rel="nofollow noopener" href="https://www.facebook.com/takazunori">Facebook</a></p> <p>2000名以上が参加しいてるAIコミュニティも運営しております。<br /> 毎日AIに関する情報を提供しておりますので、こちらのご参加もお待ちしております!<br /> <a target="_blank" rel="nofollow noopener" href="https://www.facebook.com/groups/1892746874314837/">人工知能研究コミュニティ</a></p> kazu (AI Academy今なら無料)