【Hello World!】Pythonの各分野における入門的位置づけまとめてみた

プログラミング入門では、「Hello World!」を出力するプログラムを作成することが多いですが、入門を終え、次のステップの入門では何をするのが一般的なんでしょう。ふと疑問に思ったので自分なりにまとめることにしました。もちろん「Hello World!」のようにコレと決まっているものはないのであくまで自分の考えにはなりますが、これからPythonを始める方の参考になれればと思います。

## デスクトップアプリ入門
### Tkinterで簡単なwindowを表示する
TkinterとはPythonに標準搭載されているGUIライブラリです。Pythonには**PySimpleGUI**や**kivy**など、他にもGUIライブラリが存在しますが、Tkinterは標準ライブラリだけあって、ネット上に沢山情報があります。なのでデスクトップアプリに入門する際は、まずTkinterで色々と操作になれることをおすすめします。

**GUIとは**

グラフィカルユーザインターフェース(Graphical User Interface)の略語です。コンピュータへ出す命令や指示等を、画面上で視覚的に捉えて行動を指定できるものを言います。

![図解　ブログ用 (25).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/027fe9e7-2b14-5ef6-ba97-80e1850082c2.png)

今回はTkinterで何の機能もないwindowを表示します。ここから必要に応じてボタンやコメント欄などを追加していくことになります。

~~~py
import tkinter

root = tkinter.Tk()
root.mainloop()
~~~

<img width="350" alt="ファイル名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/131178a4-3feb-6716-b0e3-7adc54ce8c30.png">


## Webアプリ入門
### html上にHello World!を表示する
Webフレームワークflaskを使って「Hello World!」を表示します。
フレームワークとは、システム開発が楽になるように用意された、プログラムのひな形のことです。Pythonにはflask以外にも**Django**、**fastapi**と言ったフレームワークが存在します。

はじめに以下のようなディレクトリ構造を作成します。

![1643713437008-la310Ta3wv.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/5b594163-a1d7-91ec-12cf-15d5c93523d7.jpeg)

app.pyとindex.htmlの中身は以下のようにします。

~~~py:app.py
from flask import Flask
from flask import render_template

app=Flask(__name__)

@app.route("/")
def index():
    return render_template("index.html")

app.run(port=5000, debug=True)
~~~

~~~:index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>Hello World!</h1>
</body>
</html>
~~~

コマンドプロンプト等を使ってapp.pyを実行し、以下のような画面が出たら成功です。

<img width="400" alt="ファイル名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/5aad90cf-573d-61a6-5361-ee88535868bb.png">


## スクレイピング入門
### htmlタグのデータを取得する
スクレイピングとは、Webサイトからデータを抽出する事を言います。

今回は

- requests(webサイトの情報を取得する)
- beautifulsoup（HTMLデータの構文を解析する）

というライブラリを使って、Webサイト（今回は https://arika-blog.com ）のhtmlタグを取得します。

ただし、スクレイピングは禁止されている場合があるため、まずはrobots.txtを開きスクレイピングをしても良いか確認します。（robots.txtには、ロボットの巡回を禁止しているURLが記載されています。）

robots.txtはトップページのURL+ /robots.txt( https://arika-blog.com/robots.txt )で開くことができます。

![Tesseract - 2023-01-03T143927.111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/ee485cf0-118c-db0c-c92e-5af93db747e1.png)


ページを確認すると、Disallow:/〇〇と書いてあり、このURLに対してはスクレイピングを禁止しているので、ここを避けてスクレイピングを行います。

:::note alert
ここに記載がなくても利用規約で禁止している場合があるので、利用規約がある場合はそちらも確認してください。また、禁止されていないとしても悪質な行為（サーバーに過度な負担をかけるなど）は法律違反にあたるリスクがあります。
:::

例えばQiitaにはこのような記載があります。

https://help.qiita.com/ja/articles/qiita-api

確認が終わったら、https://arika-blog.com/python3-basic/ の見出し（h2タグ）を抽出していきます。
（hタグは、Webサイトの内容を明確にするために用いられる見出しタグです。h1タグからh6タグまであります。）

h2タグは以下の部分になります。

![Tesseract - 2023-01-04T231143.734.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/259540b7-d5ec-04bc-5e81-25c5f5f4a5e0.png)

requestsとBeautifulSoupをインポートします。

~~~py
import requests
from bs4 import BeautifulSoup
~~~

requestsでWebサイトを取得し、BeautifulSoupで解析して情報を取り出します。

今回はsoup.find_all('h2')でh2タグをすべて取得して、テキストの部分をリストに追加します。

~~~py
#Webサイトを取得
res = requests.get("https://arika-blog.com/python3-basic/")

#BeautifulSoupオブジェクトを生成
soup = BeautifulSoup(res.text,"html.parser")

#h2タグのテキストを入れるリストを作成
h2 = []

#h2タグをすべて取得して、テキスト部分をリストに追加
founds = soup.find_all('h2')
for i in range(len(founds)):
    h2.append(founds[i].text)
~~~

見出しを取得することができました。

~~~py
print(h2)
# ['0章 試験の概要', '1章 食欲をそそってみようか', '2章 Pythonインタープリタの使い方', '3章 気楽な入門編', '4章 制御構造ツール', '動画で確認したい方はこちら', '5章 データ構造', '6章 モジュール', '7章 入出力', '8章 エラーと例外', '9章 クラス', '10章 標準ライブラリめぐり', '11章 標準ライブラリめぐりーPartⅡ', '12章 仮想環境とパッケージ', '14章 対話環境での入力行編集とヒストリ置換', 'あわせて読みたい', '\n      コメント          ']
~~~

## API入門
### 欲しいデータをリクエストして受け取る
APIとはプログラムとアプリケーションをつなぐ役割をするものです。
ルールに則ってリクエストをすることで、レスポンスを受け取ることができます。
<img width="500" alt="ファイル名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/0aeca09f-31c6-a1e8-cb9c-31760db158fc.png">

APIは色々ありますが、せっかくなのでQiitaのAPIを使わせていただきます。

今回は自分の記事情報を取得することにします。
エンドポイント（APIにアクセスするためのURI(≒URL)）に任意のパラメータを追加することで、自分の最新の記事情報を取得しています。

- エンドポイント(https://qiita.com/api/v2/items)
- page(1)
- per_page(1)
- query(user:python_academia)

~~~py
import requests

#:が特殊文字なので%3Aに書き換えています
res = requests.get('https://qiita.com/api/v2/items?page=1&per_page=1&query=user%3Apython_academia')
~~~
~~~py
print(res.text)
# [{"rendered_body":"\u003cp data-sourcepos=\"1:1-1:231\"\u003ePythonにはライブラリが沢山あります。ライブラリとは便利な機能を持ったプログラムを集めたものを言い、このライブラリを上手く使うことで色々なことを実現できます。\u003c/p\u003e\n\u003cp data-sourcepos=\"3:1-4:81\"\u003e今回はこのライブラリを用途別で図解にまとめました。\u003cbr\u003e\nPythonでプログラムを組む際の参考になりましたら幸いです。\u003c/p\u003e\n\u003cp data-sourcepos=\"6:1-6:120\"\u003e※簡単にまとめているだけなので、詳しい中身は公式ドキュメント等をご確認ください。\u003c/p\u003e\n\u003ch2 data-sourcepos=\"9:1-9:15\"\u003e\n\u003cspan id=\"機械学習\" class=\"fragment\"\u003e\u003c/span\u003e\u003ca href=\"#%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92\"\u003e\u003ci class=\"fa fa-link\"\u003e\u003c/i\u003e\u003c/a\u003e機械学習\u003c/h2\u003e\n\u003cp data-sourcepos=\"11:1-11:63\"\u003e\u003cstrong\u003e機械学習 ⊃ 深層学習\u003c/strong\u003eという包含関係です。\u003c/p\u003e\n\u003cp data-sourcepos=\"13:1-13:195\"\u003eざっくり言うと、特定のタスク（分析の方向性が明確）に対して予測できるのが機械学習で、より複雑なデータも処理できるのが深層学習です。\u003c/p\u003e\n\u003cp data-sourcepos=\"15:1-15:100\"\u003e\u003cstrong\u003eただし深層学習はその分、学習に要する時間やデータは多くなります。\u003c/strong\u003e\u003c/p\u003e\n\u003cp data-sourcepos=\"17:1-17:118\"\u003e\u003ca href=\"https://camo.qiitausercontent.com/9a91c7dcb677a4586396b99c7208b891104169bb/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323633383037332f65376631353066652d323266342d656635632d376634382d3834616661383831353738322e706e67\" target=\"_blank\" rel=\"nofollow noopener\"\u003e\u003cimg src=\"https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F2638073%2Fe7f150fe-22f4-ef5c-7f48-84afa8815782.png?ixlib=rb-4.0.0\u0026amp;auto=format\u0026amp;gif-q=60\u0026amp;q=75\u0026amp;s=8b701e0ab13633f38ad36e3f3078afbf\" alt=\"4.png\" data-canonical-src=\"https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/e7f150fe-22f4-ef5c-7f48-84afa8815782.png\" srcset=\"https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F2638073%2Fe7f150fe-22f4-ef5c-7f48-84afa8815782.png?ixlib=rb-4.0.0\u0026amp;auto=format\u0026amp;gif-q=60\u0026amp;q=75\u0026amp;w=1400\u0026amp;fit=max\u0026amp;s=ac58fd3ec603d9902fa1a223c4554c54 1x\" loading=\"lazy\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp data-sourcepos=\"19:1-19:66\"\u003e【機械学習入門】scikit-learnを使ったアヤメの分類\u003c/p\u003e\n\u003cp data-sourcepos=\"21:1-21:36\"\u003e\u003ciframe id=\"qiita-embed-content__7ec991d28519093d1cc80bdc0ac6489c\" src=\"https://qiita.com/embed-contents/link-card#qiita-embed-content__7ec991d28519093d1cc80bdc0ac6489c\" data-content=\"https%3A%2F%2Farika-blog.com%2Fscikit-learn%2F\" frameborder=\"0\" scrolling=\"no\" loading=\"lazy\" style=\"width:100%;\" height=\"29\"\u003e\n\u003c/iframe\u003e\n\u003c/p\u003e\n\u003ch2 data-sourcepos=\"23:1-23:18\"\u003e\n\u003cspan id=\"データ分析\" class=\"fragment\"\u003e\u003c/span\u003e\u003ca href=\"#%E3%83%87%E3%83%BC%E3%82%BF%E5%88%86%E6%9E%90\"\u003e\u003ci class=\"fa fa-link\"\u003e\u003c/i\u003e\u003c/a\u003eデータ分析\u003c/h2\u003e\n\u003cp data-sourcepos=\"24:1-26:118\"\u003eデータ分析には必須と言っていいほどのライブラリです。\u003cbr\u003e\nNumpyはデータの前処理、matplotlib・seabornはデータの可視化に使います。\u003cbr\u003e\n\u003ca href=\"https://camo.qiitausercontent.com/c13b52240d39987fcec08daea1f5c37175f6f648/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323633383037332f34336631613438652d323566392d373561322d323633312d6266376639636230366266642e706e67\" target=\"_blank\" rel=\"nofollow noopener\"\u003e\u003cimg src=\"https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F2638073%2F43f1a48e-25f9-75a2-2631-bf7f9cb06bfd.png?ixlib=rb-4.0.0\u0026amp;auto=format\u0026amp;gif-q=60\u0026amp;q=75\u0026amp;s=862bd8fde5fd91b657cb96c0d34b384a\" alt=\"8.png\" data-canonical-src=\"https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/43f1a48e-25f9-75a2-2631-bf7f9cb06bfd.png\" srcset=\"https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F2638073%2F43f1a48e-25f9-75a2-2631-bf7f9cb06bfd.png?ixlib=rb-4.0.0\u0026amp;auto=format\u0026amp;gif-q=60\u0026amp;q=75\u0026amp;w=1400\u0026amp;fit=max\u0026amp;s=9b93ace71c69638bbab6f49538ad4a8e 1x\" loading=\"lazy\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 data-sourcepos=\"29:1-29:18\"\u003e\n\u003cspan id=\"業務効率化\" class=\"fragment\"\u003e\u003c/span\u003e\u003ca href=\"#%E6%A5%AD%E5%8B%99%E5%8A%B9%E7%8E%87%E5%8C%96\"\u003e\u003ci class=\"fa fa-link\"\u003e\u003c/i\u003e\u003c/a\u003e業務効率化\u003c/h2\u003e\n\u003cp data-sourcepos=\"30:1-31:141\"\u003ePythonは業務効率化にも使えます。\u003cbr\u003e\nExcelとスクレイピング、PDFとOutlookなど、複数の処理を１つのプログラム内で完結させることができます。\u003c/p\u003e\n\u003cp data-sourcepos=\"33:1-33:128\"\u003e\u003ca href=\"https://camo.qiitausercontent.com/43687e8b51fa4f0385bcd9f8c95b79a2cdb46b4b/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323633383037332f61666664383531342d383865662d376466622d663132382d3036333861353331623036392e706e67\" target=\"_blank\" rel=\"nofollow noopener\"\u003e\u003cimg src=\"https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F2638073%2Faffd8514-88ef-7dfb-f128-0638a531b069.png?ixlib=rb-4.0.0\u0026amp;auto=format\u0026amp;gif-q=60\u0026amp;q=75\u0026amp;s=c3635b086814ad531eb8f2ef239a5a44\" alt=\"図解 (50).png\" data-canonical-src=\"https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/affd8514-88ef-7dfb-f128-0638a531b069.png\" srcset=\"https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F2638073%2Faffd8514-88ef-7dfb-f128-0638a531b069.png?ixlib=rb-4.0.0\u0026amp;auto=format\u0026amp;gif-q=60\u0026amp;q=75\u0026amp;w=1400\u0026amp;fit=max\u0026amp;s=c0817c79b83eb2feda3053772a18b9b8 1x\" loading=\"lazy\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp data-sourcepos=\"36:1-36:63\"\u003eこちらにもう少し詳しい内容を載せています。\u003c/p\u003e\n\u003cp data-sourcepos=\"38:1-38:60\"\u003e\u003ciframe id=\"qiita-embed-content__bbee91c42dea17cccaccf30f0d715248\" src=\"https://qiita.com/embed-contents/link-card#qiita-embed-content__bbee91c42dea17cccaccf30f0d715248\" data-content=\"https%3A%2F%2Fqiita.com%2Fpython_academia%2Fitems%2F96df81c3fe4094581908\" frameborder=\"0\" scrolling=\"no\" loading=\"lazy\" style=\"width:100%;\" height=\"29\"\u003e\n\u003c/iframe\u003e\n\u003c/p\u003e\n\u003ch2 data-sourcepos=\"40:1-40:15\"\u003e\n\u003cspan id=\"webアプリ\" class=\"fragment\"\u003e\u003c/span\u003e\u003ca href=\"#web%E3%82%A2%E3%83%97%E3%83%AA\"\u003e\u003ci class=\"fa fa-link\"\u003e\u003c/i\u003e\u003c/a\u003eWebアプリ\u003c/h2\u003e\n\u003cp data-sourcepos=\"41:1-41:184\"\u003ePythonにはwebアプリ開発に便利なフレームワークが存在します。これによりWebブラウザ（chrome、edgeなど）上で動くアプリを作成できます。\u003c/p\u003e\n\u003cp data-sourcepos=\"43:1-43:139\"\u003e\u003cstrong\u003eフレームワークとは、システム開発が楽になるように用意された、プログラムのひな形のことです。\u003c/strong\u003e\u003c/p\u003e\n\u003cp data-sourcepos=\"45:1-45:118\"\u003e\u003ca href=\"https://camo.qiitausercontent.com/dca3c768d4ac2556c21707688fe3478fc069f6ba/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323633383037332f66316530663062662d383465332d613766342d363131352d6438323264396562313561332e706e67\" target=\"_blank\" rel=\"nofollow noopener\"\u003e\u003cimg src=\"https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F2638073%2Ff1e0f0bf-84e3-a7f4-6115-d822d9eb15a3.png?ixlib=rb-4.0.0\u0026amp;auto=format\u0026amp;gif-q=60\u0026amp;q=75\u0026amp;s=658562bf55cae7180699bdb3be8dee4d\" alt=\"3.png\" data-canonical-src=\"https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/f1e0f0bf-84e3-a7f4-6115-d822d9eb15a3.png\" srcset=\"https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F2638073%2Ff1e0f0bf-84e3-a7f4-6115-d822d9eb15a3.png?ixlib=rb-4.0.0\u0026amp;auto=format\u0026amp;gif-q=60\u0026amp;q=75\u0026amp;w=1400\u0026amp;fit=max\u0026amp;s=03af8ad6aaca5e319699438ca1deb711 1x\" loading=\"lazy\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 data-sourcepos=\"47:1-47:30\"\u003e\n\u003cspan id=\"デスクトップアプリ\" class=\"fragment\"\u003e\u003c/span\u003e\u003ca href=\"#%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E3%82%A2%E3%83%97%E3%83%AA\"\u003e\u003ci class=\"fa fa-link\"\u003e\u003c/i\u003e\u003c/a\u003eデスクトップアプリ\u003c/h2\u003e\n\u003cp data-sourcepos=\"48:1-49:144\"\u003e基本的にはその名の通り、デスクトップで動くアプリのことです。\u003cbr\u003e\n自分が作成したプログラムをGUI化（マウスで操作できるアプリ化）することで、より使いやすくできます。\u003c/p\u003e\n\u003cp data-sourcepos=\"51:1-51:118\"\u003e\u003ca href=\"https://camo.qiitausercontent.com/ccd4c68305e1c828562833049bf03111d935eb15/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323633383037332f30323031363234332d613836392d363937662d646237642d3065323230343238326234332e706e67\" target=\"_blank\" rel=\"nofollow noopener\"\u003e\u003cimg src=\"https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F2638073%2F02016243-a869-697f-db7d-0e2204282b43.png?ixlib=rb-4.0.0\u0026amp;auto=format\u0026amp;gif-q=60\u0026amp;q=75\u0026amp;s=71afba5528f114e0d2b35cb225cd163a\" alt=\"7.png\" data-canonical-src=\"https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/02016243-a869-697f-db7d-0e2204282b43.png\" srcset=\"https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F2638073%2F02016243-a869-697f-db7d-0e2204282b43.png?ixlib=rb-4.0.0\u0026amp;auto=format\u0026amp;gif-q=60\u0026amp;q=75\u0026amp;w=1400\u0026amp;fit=max\u0026amp;s=8943e6593d943fb305455de52203c8f5 1x\" loading=\"lazy\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp data-sourcepos=\"53:1-53:101\"\u003ePySimpleGUIに関しては基本をまとめていますので良かったらご活用ください。\u003c/p\u003e\n\u003cp data-sourcepos=\"55:1-55:35\"\u003e\u003ciframe id=\"qiita-embed-content__0a2b522ada07f608d7dc5e576031399d\" src=\"https://qiita.com/embed-contents/link-card#qiita-embed-content__0a2b522ada07f608d7dc5e576031399d\" data-content=\"https%3A%2F%2Farika-blog.com%2Fpysimplegui%2F\" frameborder=\"0\" scrolling=\"no\" loading=\"lazy\" style=\"width:100%;\" height=\"29\"\u003e\n\u003c/iframe\u003e\n\u003c/p\u003e\n\u003ch2 data-sourcepos=\"58:1-58:12\"\u003e\n\u003cspan id=\"その他\" class=\"fragment\"\u003e\u003c/span\u003e\u003ca href=\"#%E3%81%9D%E3%81%AE%E4%BB%96\"\u003e\u003ci class=\"fa fa-link\"\u003e\u003c/i\u003e\u003c/a\u003eその他\u003c/h2\u003e\n\u003cp data-sourcepos=\"59:1-59:144\"\u003e画像処理を業務効率化に使われる方もいると思いますが、業種が限られると思ったのでその他にしました。\u003c/p\u003e\n\u003cp data-sourcepos=\"61:1-62:118\"\u003eOpenCV・Pillowは機械学習の前処理でも使えます。場合によってはOpenCVだけでも異常検知ができます。\u003cbr\u003e\n\u003ca href=\"https://camo.qiitausercontent.com/f8bde9bb1586f8c08b222ae977856842ef2f083f/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323633383037332f39613334343032392d333537392d363134382d316139612d6362386266333636313238392e706e67\" target=\"_blank\" rel=\"nofollow noopener\"\u003e\u003cimg src=\"https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F2638073%2F9a344029-3579-6148-1a9a-cb8bf3661289.png?ixlib=rb-4.0.0\u0026amp;auto=format\u0026amp;gif-q=60\u0026amp;q=75\u0026amp;s=f11d27d194f489d5cefc63f8c465522b\" alt=\"9.png\" data-canonical-src=\"https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/9a344029-3579-6148-1a9a-cb8bf3661289.png\" srcset=\"https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F2638073%2F9a344029-3579-6148-1a9a-cb8bf3661289.png?ixlib=rb-4.0.0\u0026amp;auto=format\u0026amp;gif-q=60\u0026amp;q=75\u0026amp;w=1400\u0026amp;fit=max\u0026amp;s=d81f973562585e0bc87ba8f6e6549838 1x\" loading=\"lazy\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 data-sourcepos=\"65:1-65:51\"\u003e\n\u003cspan id=\"おまけよく使う標準ライブラリ\" class=\"fragment\"\u003e\u003c/span\u003e\u003ca href=\"#%E3%81%8A%E3%81%BE%E3%81%91%E3%82%88%E3%81%8F%E4%BD%BF%E3%81%86%E6%A8%99%E6%BA%96%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA\"\u003e\u003ci class=\"fa fa-link\"\u003e\u003c/i\u003e\u003c/a\u003eおまけ（よく使う標準ライブラリ）\u003c/h2\u003e\n\u003cp data-sourcepos=\"66:1-67:118\"\u003e用途別というよりかは常に使うものですが、\u003ca href=\"https://docs.python.org/ja/3/library/index.html\" rel=\"nofollow noopener\" target=\"_blank\"\u003e標準ライブラリ\u003c/a\u003eから使う頻度が多いものを選出しました。\u003cbr\u003e\n\u003ca href=\"https://camo.qiitausercontent.com/26ea10451d4cdeeaa7b442c858482e7c7df89662/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323633383037332f65323830653131322d396237332d393130382d663831622d6363653566366634323132342e706e67\" target=\"_blank\" rel=\"nofollow noopener\"\u003e\u003cimg src=\"https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F2638073%2Fe280e112-9b73-9108-f81b-cce5f6f42124.png?ixlib=rb-4.0.0\u0026amp;auto=format\u0026amp;gif-q=60\u0026amp;q=75\u0026amp;s=18183fc3a56506a450ed510b1496e6e9\" alt=\"6.png\" data-canonical-src=\"https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/e280e112-9b73-9108-f81b-cce5f6f42124.png\" srcset=\"https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F2638073%2Fe280e112-9b73-9108-f81b-cce5f6f42124.png?ixlib=rb-4.0.0\u0026amp;auto=format\u0026amp;gif-q=60\u0026amp;q=75\u0026amp;w=1400\u0026amp;fit=max\u0026amp;s=d3aba8090db4ddf70ff387e6f2bf2b3e 1x\" loading=\"lazy\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 data-sourcepos=\"70:1-70:15\"\u003e\n\u003cspan id=\"おわりに\" class=\"fragment\"\u003e\u003c/span\u003e\u003ca href=\"#%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB\"\u003e\u003ci class=\"fa fa-link\"\u003e\u003c/i\u003e\u003c/a\u003eおわりに\u003c/h2\u003e\n\u003cp data-sourcepos=\"71:1-72:123\"\u003eライブラリを図解にまとめました。\u003cbr\u003e\nPythonはライブラリが豊富なので、まずは概要だけでもおさえておくといいかもしれません。\u003c/p\u003e\n\u003cp data-sourcepos=\"74:1-75:54\"\u003eYouTubeにて、Pythonチュートリアル（公式ドキュメント）を使ってPythonの基礎文法を解説しています。\u003cbr\u003e\nこちらもよろしければご活用ください。\u003c/p\u003e\n\u003cp data-sourcepos=\"77:1-77:56\"\u003e\u003ciframe id=\"qiita-embed-content__9edc74b38b5dc7948a8a02bf6f03ce1f\" src=\"https://qiita.com/embed-contents/link-card#qiita-embed-content__9edc74b38b5dc7948a8a02bf6f03ce1f\" data-content=\"https%3A%2F%2Fwww.youtube.com%2Fchannel%2FUCl_e49nQhOMoYkQOo_4ew2Q\" frameborder=\"0\" scrolling=\"no\" loading=\"lazy\" style=\"width:100%;\" height=\"29\"\u003e\n\u003c/iframe\u003e\n\u003c/p\u003e\n\u003cp data-sourcepos=\"79:1-79:22\"\u003e\u003cstrong\u003eおすすめ記事\u003c/strong\u003e\u003c/p\u003e\n\u003cp data-sourcepos=\"81:1-81:40\"\u003e\u003ciframe id=\"qiita-embed-content__da58325e598d5807e584b63d94af0855\" src=\"https://qiita.com/embed-contents/link-card#qiita-embed-content__da58325e598d5807e584b63d94af0855\" data-content=\"https%3A%2F%2Farika-blog.com%2Fpython-threestep%2F\" frameborder=\"0\" scrolling=\"no\" loading=\"lazy\" style=\"width:100%;\" height=\"29\"\u003e\n\u003c/iframe\u003e\n\u003c/p\u003e\n","body":"Pythonにはライブラリが沢山あります。ライブラリとは便利な機能を持ったプログラムを集めたものを言い、このライブラリを上手く使うことで色々なことを実現できます。\n\n今回はこのライブラリを用途別で図解にまとめました。\nPythonでプログラムを組む際の参考になりましたら幸いです。\n\n※簡単にまとめているだけなので、詳しい中身は公式ドキュメント等をご確認ください。\n\n\n## 機械学習\n\n**機械学習 ⊃ 深層学習**という包含関係です。\n\nざっくり言うと、特定のタスク（分析の方向性が明確）に対して予測できるのが機械学習で、より複雑なデータも処理できるのが深層学習です。\n\n**ただし深層学習はその分、学習に要する時間やデータは多くなります。**\n\n![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/e7f150fe-22f4-ef5c-7f48-84afa8815782.png)\n\n【機械学習入門】scikit-learnを使ったアヤメの分類\n\nhttps://arika-blog.com/scikit-learn/\n\n## データ分析\nデータ分析には必須と言っていいほどのライブラリです。\nNumpyはデータの前処理、matplotlib・seabornはデータの可視化に使います。\n![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/43f1a48e-25f9-75a2-2631-bf7f9cb06bfd.png)\n\n\n## 業務効率化\nPythonは業務効率化にも使えます。\nExcelとスクレイピング、PDFとOutlookなど、複数の処理を１つのプログラム内で完結させることができます。\n\n![図解 (50).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/affd8514-88ef-7dfb-f128-0638a531b069.png)\n\n\nこちらにもう少し詳しい内容を載せています。\n\nhttps://qiita.com/python_academia/items/96df81c3fe4094581908\n\n## Webアプリ\nPythonにはwebアプリ開発に便利なフレームワークが存在します。これによりWebブラウザ（chrome、edgeなど）上で動くアプリを作成できます。\n\n**フレームワークとは、システム開発が楽になるように用意された、プログラムのひな形のことです。**\n\n![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/f1e0f0bf-84e3-a7f4-6115-d822d9eb15a3.png)\n\n## デスクトップアプリ\n基本的にはその名の通り、デスクトップで動くアプリのことです。\n自分が作成したプログラムをGUI化（マウスで操作できるアプリ化）することで、より使いやすくできます。\n\n![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/02016243-a869-697f-db7d-0e2204282b43.png)\n\nPySimpleGUIに関しては基本をまとめていますので良かったらご活用ください。\n\nhttps://arika-blog.com/pysimplegui/\n\n\n## その他\n画像処理を業務効率化に使われる方もいると思いますが、業種が限られると思ったのでその他にしました。\n\nOpenCV・Pillowは機械学習の前処理でも使えます。場合によってはOpenCVだけでも異常検知ができます。\n![9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/9a344029-3579-6148-1a9a-cb8bf3661289.png)\n\n\n## おまけ（よく使う標準ライブラリ）\n用途別というよりかは常に使うものですが、[標準ライブラリ](https://docs.python.org/ja/3/library/index.html)から使う頻度が多いものを選出しました。\n![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/e280e112-9b73-9108-f81b-cce5f6f42124.png)\n\n\n## おわりに\nライブラリを図解にまとめました。\nPythonはライブラリが豊富なので、まずは概要だけでもおさえておくといいかもしれません。\n\nYouTubeにて、Pythonチュートリアル（公式ドキュメント）を使ってPythonの基礎文法を解説しています。\nこちらもよろしければご活用ください。\n\nhttps://www.youtube.com/channel/UCl_e49nQhOMoYkQOo_4ew2Q\n\n**おすすめ記事**\n\nhttps://arika-blog.com/python-threestep/\n","coediting":false,"comments_count":1,"created_at":"2023-10-15T19:16:57+09:00","group":null,"id":"62aefbf4e373cd2aa496","likes_count":392,"private":false,"reactions_count":0,"stocks_count":489,"tags":[{"name":"Python","versions":[]},{"name":"初心者","versions":[]},{"name":"ライブラリ","versions":[]},{"name":"初心者向け","versions":[]},{"name":"新人プログラマ応援","versions":[]}],"title":"【図解】Pythonのライブラリ 24選＋α","updated_at":"2023-11-03T06:34:29+09:00","url":"https://qiita.com/python_academia/items/62aefbf4e373cd2aa496","user":{"description":"YouTubeでPythonチュートリアルの解説をしています","facebook_id":"","followees_count":1,"followers_count":415,"github_login_name":null,"id":"python_academia","items_count":13,"linkedin_id":"","location":"","name":"Python アカデミア","organization":"","permanent_id":2638073,"profile_image_url":"https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/profile-images/1685364062","team_only":false,"twitter_screen_name":"python_academia","website_url":"https://arika-blog.com/"},"page_views_count":null,"team_membership":null,"organization_url_name":null,"slide":false}]
~~~

どうリクエストをすれば、どうレスポンスが返ってくるのかはドキュメントを確認する必要があります。

https://qiita.com/api/v2/docs

## データ分析入門
### matplotlibを使ったグラフ作成
データ分析にはmatplotlibをはじめ、pandasやnumpyなど使用するライブラリは他にもありますが、今回はmatplotlibを使ってグラフを作成し、データを可視化します。

~~~py
import matplotlib.pyplot as plt

fig, ax = plt.subplots() 
ax.plot([1, 2, 3, 4], [2, 4, 6, 8])
~~~

plt.subplots()で土台を作り、そこにデータをプロットすることでグラフを作成しています。

![スクリーンショット (567).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/64b4206f-d788-6d13-9698-e77987e5e33a.png)



## 機械学習入門
### あやめの分類
機械学習の入門にはあやめの分類がよく取り上げられます。
機械学習とは、簡単に言うとコンピュータに学習能力を持たせる技術です。大きく分けて3つの学習方法があります。

- 教師あり学習: ラベル付きデータから学習する手法(分類、回帰など)
- 教師なし学習: ラベルなしデータから知識を獲得する手法(クラスタリングなど)
- 強化学習: 試行錯誤から最適な行動を学ぶ手法

用途に応じて適切な手法を選択することが重要です。

:::note info
機械学習は画像認識、音声解析、検索、広告配信など幅広い分野で応用されています。
:::

今回のあやめの分類はその名の通り**分類**なので、教師あり学習で行います。
以下がイメージです。

![図解　ブログ用 (17).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/80cd9ba3-8bae-504f-a580-1dc4adeafc83.png)

:::note warn
同じ写真ばかりですが、実際は様々なデータを与えることになります。
:::

既に記事としてまとめているため、気になった方は是非こちらから挑戦してみてください。

https://arika-blog.com/scikit-learn/

また、同時にAIや深層学習（ディープラーニング）なども耳にするかと思いますが、以下のように**AI ⊃ 機械学習 ⊃ 深層学習**という包含関係にあります。

<img width="500" alt="ファイル名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/29aa0e64-a0d7-76b9-9d9b-1a071948c12a.png">

ざっくり言うと、人間の思考と同じような形で動作するプログラムをAIと言い、特定のタスク（分析の方向性が明確）に対して予測できるのが機械学習で、より複雑なデータも処理できるのが深層学習です。

ただし深層学習は機械学習に比べ、学習に要する時間やデータは多くなります。


## おわりに
様々な分野の入門的位置づけをまとめてみました。今回の記事を読んで興味の湧くものがあった方は是非Pythonに触れてみてはいかがでしょうか。

YouTubeにて、Pythonチュートリアル（公式ドキュメント）を使ってPythonの基礎文法を解説しています。
こちらもよろしければご活用ください。

https://www.youtube.com/channel/UCl_e49nQhOMoYkQOo_4ew2Q

**おすすめ記事**

https://arika-blog.com/python-threestep/