Python ライブラリ

Pythonライブラリ一覧|よく使う50選を用途別に解説

Web・データ分析・画像処理・機械学習・自動化など用途別に厳選した50ライブラリ。標準ライブラリ(モジュール)の一覧から外部ライブラリの選び方まで、インストールコマンドと基本的な使い方のコード例付きで解説します。自分の環境に入っているライブラリを一覧表示する方法もまとめました。

📦 厳選50+標準ライブラリ 🎯 初心者〜中級者向け 🔄 最終更新: 2026年8月28日
50
ライブラリ紹介
6
カテゴリ
全て
pip対応
コード例
全件付き
外部ライブラリ一覧・早見表 50件を見る → 標準ライブラリ(モジュール)一覧 35件を見る → 自分のPCに入っている一覧を確認する →
💡
仮想環境でライブラリを管理しよう

外部ライブラリは 仮想環境(venv) の中にインストールするのが推奨です。プロジェクトごとにバージョンを分離できます。venvの使い方はこちら →

Pythonライブラリとは?

Pythonのライブラリとは、「よく使う機能をまとめて再利用できるようにしたコードの集まり」のことです。たとえば「Webページを取得する」「Excelを読み書きする」「グラフを描く」といった処理は、自分でゼロから書くと膨大なコードになりますが、ライブラリを import するだけで数行で実現できます。車輪の再発明をしなくてよい——これがライブラリを使う最大のメリットです。import する前に書き方の土台を確認したい方は、Python基本構文の早見表83項目もあわせてどうぞ。

🎯
目的から選ぶ:迷ったらこの5つから

「結局どれを使えばいい?」と迷ったら、まず目的に近い1つを試すのが近道です。

  • 🌐 Webからデータ取得(API・スクレイピング)→ requests
  • 📊 表データの集計・分析(Excel/CSV)→ pandas
  • 📈 グラフで可視化Matplotlib
  • 🖼️ 画像の加工・処理Pillow
  • 🤖 機械学習・AI入門scikit-learn

GUIアプリを作るなら標準ライブラリの tkinter(まずはtkinterでウィンドウを表示する手順と、出ないときの対処から。作例=初心者アプリ100本)。全50件をまとめて見たい人は 外部ライブラリ早見表 からどうぞ。

個別のライブラリを追う前に、Pythonそのものを1冊で通しておきたい方へ。Python参考書おすすめランキング【2026年版】の入門書2冊で文法を体系立てて一周しておくと、ライブラリの公式ドキュメントも読み解きやすくなります。

Pythonライブラリの用途別マップ。中央のPythonライブラリからWeb・HTTP(requests・Flask)、データ分析(pandas・NumPy)、画像・映像(Pillow・OpenCV)、機械学習・AI(scikit-learn・PyTorch)、自動化・ツール(selenium・schedule)、開発・テスト(pytest・black)の6カテゴリへ分かれる図
▲ 本記事で扱う6カテゴリの全体像(中央のPythonから用途別に枝分かれ)

ライブラリ・モジュール・パッケージの違い

よく混同されますが、関係を整理すると次のとおりです。実用上は「import して使える便利な部品」とまとめて捉えれば問題ありません。標準モジュールの一覧は標準ライブラリ一覧、外部ライブラリの一覧は早見表(50件)で確認できます。

用語正体イメージ
モジュール関数やクラスをまとめた1つの .py ファイル部品1個math, random
パッケージ複数のモジュールをまとめたフォルダ部品箱numpy, requests
ライブラリ再利用可能なコードの総称(モジュール・パッケージを含む)部品箱の集合標準ライブラリ / 外部ライブラリ

標準ライブラリと外部ライブラリの違い

Pythonのライブラリは、大きく標準ライブラリ外部(サードパーティ)ライブラリの2種類に分かれます。「標準で足りる処理は標準で、専門的・高機能な処理は外部で」が使い分けの基本方針です。

標準ライブラリと外部ライブラリの違いの比較図。標準ライブラリ(os・json・datetime・math・random)はインストール不要でimportするだけ。外部ライブラリ(pandas・requests・Pillow・NumPy)はpip installで追加する
▲ 標準ライブラリ(青)と外部ライブラリ(黄)の違い
比較項目標準ライブラリ外部ライブラリ
入手方法Pythonに最初から付属(インストール不要)PyPIから pip install で追加
代表例os / json / datetimepandas / requests / Pillow
メリット追加不要・安定・どの環境でも動く高機能・専門特化・開発が速い
注意点機能は基本的なものに限られるバージョン管理と提供元の信頼性確認が必要
📌
このページの構成

まず「インストール不要ですぐ使える標準ライブラリ」を押さえ、次に用途別の外部ライブラリ50選へ進む流れです。急ぐ方は早見表から目的のライブラリを探せます。

pipでのインストールと仮想環境

外部ライブラリは、Python標準のパッケージ管理ツール pip でインストールします。ターミナル(コマンドプロンプト)で次のように実行するだけです。

# 1つだけインストール
pip install pandas

# 複数まとめて
pip install requests beautifulsoup4 openpyxl

# バージョン指定・アップグレード
pip install "pandas==2.2.0"
pip install --upgrade pandas
💡
プロジェクトごとに仮想環境(venv)を使おう

ライブラリをPC全体に入れると、プロジェクト間でバージョンが衝突することがあります。仮想環境(venv)を作り、その中にインストールすればバージョンを安全に分離できます。手順はPythonインストール手順のvenv解説で詳しく紹介しています。

なお pip が扱うのはライブラリで、Python 本体そのものの追加・更新・削除は別の仕組みです。Windows で本体を管理する Python install manager の使い方(py install / py list)は、インストール手順のページで従来のインストーラーとの比較表と実行結果つきで解説しています。

⚠️
インストールでつまずいたら

pip install がエラーになる場合は、pip自体の更新(python -m pip install --upgrade pip)やライブラリ名のスペル、Pythonのバージョン対応を確認しましょう。代表的なエラーはよくあるエラー解決ページにまとめています。

自分の環境に入っているライブラリ一覧を確認する方法

インストールを何度か繰り返すと、必ず「このPCには結局どのライブラリが入っているんだっけ?」という場面が来ます。import でエラーが出たとき、他のPCに同じ環境を作りたいとき、久しぶりのプロジェクトを再開したとき——いずれもまず現状を一覧で把握するのが最短ルートです。ここでは Windows のコマンドプロンプト/PowerShell を想定して、確認用のコマンドを目的別に整理します。

インストール済みライブラリの確認コマンドの使い分け図。何を知りたいかで分岐し、一覧はpip list、環境の再現はpip freeze、1つの詳細はpip show 名前、標準ライブラリの名前はsys.stdlib_module_namesを使う
▲ 「何を知りたいか」でコマンドを選ぶと迷わない
やりたいことコマンド出力の形
入っているものを一覧で見るpip list名前とバージョンの表
更新があるものだけ見るpip list --outdated現在版と最新版を並べた表
環境を他の人・他のPCで再現するpip freeze名前==版 の羅列(requirements.txt 形式)
1つのライブラリを詳しく調べるpip show パッケージ名バージョン・保存場所・依存関係
標準ライブラリの名前を知るsys.stdlib_module_namesモジュール名の集合(Pythonコード内)

pip list|入っているパッケージを一覧表示する

もっとも手軽なのが pip list です。インストール済みパッケージの名前とバージョンが表形式で並びます。

python -m pip list

次のように、パッケージ名とバージョンが2列で表示されます(内容は環境ごとに異なります)。ここでは pandasrequests だけを入れた仮想環境の例です。

Package            Version
------------------ --------
certifi            2024.7.4
charset-normalizer 3.3.2
idna               3.7
numpy              2.0.1
pandas             2.2.2
pip                24.0
python-dateutil    2.9.0
pytz               2024.1
requests           2.32.3
six                1.16.0
tzdata             2024.1
urllib3            2.2.2

自分で入れた覚えのない名前が並んでいても、故障ではありません。pandasrequests が内部で使う依存ライブラリも一緒に入るため、一覧には自動的に含まれます。「2つしか入れていないのに12行ある」のが普通の状態です。

「新しい版が出ていないか」を知りたいときは --outdated を付けます。現在のバージョンと最新バージョンが並ぶので、更新すべきものが一目で分かります。

python -m pip list --outdated

まとめて更新するコマンドはpipに用意されていないため、表示されたものから必要な1つずつ python -m pip install --upgrade パッケージ名 で上げるのが安全です。動いているプロジェクトのライブラリを一括で上げると、互換性が崩れて動かなくなることがあります。

pip freeze|requirements.txt 用にバージョンを固定する

pip freeze は同じ情報を「名前==バージョン」というそのまま再インストールできる形式で出力します。表の飾りが無い分、ファイルに保存して使い回すのに向いています。

python -m pip freeze
certifi==2024.7.4
charset-normalizer==3.3.2
idna==3.7
numpy==2.0.1
pandas==2.2.2
python-dateutil==2.9.0
pytz==2024.1
requests==2.32.3
six==1.16.0
tzdata==2024.1
urllib3==2.2.2

同じ環境で pip list と見比べると、pip 自身が消えていることに気づきます。再現したいのはプロジェクトが使うライブラリであって、pipそのものではないためです。

この出力をファイルに書き出したものが、よく見かける requirements.txt です。別のPCではそのファイルを渡して読み込ませれば、同じバージョンの組み合わせを再現できます。

# 現在の環境をファイルに書き出す
python -m pip freeze > requirements.txt

# 別の環境で同じ構成を再現する
python -m pip install -r requirements.txt
⚠️
Windowsでの書き出しは文字コードに注意

PowerShell(Windows標準の5.1系)でリダイレクト > を使うと、ファイルはUTF-16で保存されます。pip 自体はこの形式の requirements.txt も読み込めるため、手元で pip install -r する分には問題は起きません。ただしエディタやGitの差分で文字化けして見えたり、CI・コンテナのビルドなどpip以外のツールが読めなかったりする原因になります。UTF-8で保存しておくのが無難で、コマンドプロンプトで実行するか python -m pip freeze | Out-File -Encoding utf8 requirements.txt のように文字コードを明示すれば揃えられます。なお PowerShell 5.1 の -Encoding utf8BOM付きのUTF-8になるため、BOMも避けたいときは PowerShell 6以降の -Encoding utf8NoBOM を使うか、5.1のままなら [System.IO.File]::WriteAllLines("$PWD\requirements.txt", (python -m pip freeze)) のようにBOMなしで書き出します。PowerShell 6以降は既定がUTF-8(BOMなし)なので、この注意は不要です。

pip listpip freeze は中身が近いので混同しがちですが、役割は次のように分かれます。人が読むなら list、機械に読ませるなら freezeと覚えると迷いません。

  • pip list:見出し付きの表。--outdated のような確認用オプションが充実していて、目視チェック向き。
  • pip freeze名前==版 だけの素直な羅列。requirements.txt に流し込む前提の形式で、pip自身など一部のパッケージは既定で出力から除かれます(--all で含められます)。

pip show|1つのライブラリを詳しく調べる

「このライブラリ、どのバージョンでどこに入っているの?」を調べるのが pip show です。バージョン・概要・インストール場所(Location)・依存関係(Requires/Required-by)がまとめて表示されます。

python -m pip show requests

表示される項目は、おおむね次のような内容です。

Name: requests
Version: 2.32.3
Summary: Python HTTP for Humans.
Location: C:\Users\your-name\project\.venv\Lib\site-packages
Requires: certifi, charset-normalizer, idna, urllib3
Required-by: 

注目したいのは LocationRequired-by の2行です。Location が想定と違うフォルダなら、別のPythonや別の仮想環境に入れてしまったサインです。Required-by が空でなければ、他のライブラリがそれに依存しているという意味なので、うかつにアンインストールすると連鎖的に壊れます。-f を付けると、そのパッケージが配置したファイルの一覧まで確認できます。

python -m pip 形式が安全な理由

この節では、あえて pip list ではなく python -m pip list と書いてきました。理由は、pip という単体のコマンドが、いま使っている python と別のPythonに紐づいていることがあるためです。「インストールしたはずなのに ModuleNotFoundError が出る」の典型的な原因がこれです。

python -m pip と書くと「いま起動する python に付属している pip」が確実に呼ばれるため、インストール先と実行先のズレが起きません。今どのPythonを使っているかは、次の方法で確認できます。

# どこの python / pip が呼ばれているか(コマンドプロンプト)
where python
where pip

# PowerShellの場合(where は別コマンドの別名なので where.exe を使う)
where.exe python

# 実行中のPython本体の場所とバージョン(どちらでも同じ)
python -c "import sys; print(sys.executable); print(sys.version)"

なお、この記事の他のセクション(早見表や各ライブラリのカード)では、コピーしやすさを優先して pip install ○○ と短い形で表記しています。そのままで入らないときや、入れたはずのものが一覧に出てこないときは、python -m pip install ○○ に置き換えて試してください。

仮想環境を使っている場合は、有効化してから確認するのが鉄則です。有効化した状態の python -m pip list はその仮想環境の中身だけを表示するので、一覧が短くて読みやすくなります。逆に有効化を忘れると、PC全体の一覧が出てきて「入れたはずのものが見当たらない」と混乱します。仮想環境の作り方はインストール手順のvenv解説を参照してください。

標準ライブラリの一覧を確認する|sys.stdlib_module_names

ここまでは pip で入れた外部ライブラリの話でした。標準ライブラリ側の一覧は、Python 3.10以降であれば sys.stdlib_module_names で取得できます。これは標準ライブラリのモジュール名を集めた集合(frozenset)で、pipには一切現れません。

import sys

# 内部用(アンダースコア始まり)を除いて並べ替え
names = sorted(n for n in sys.stdlib_module_names if not n.startswith("_"))

print(len(names))      # 標準モジュールの数
print(names[:10])      # 先頭10件だけ表示
print("json" in sys.stdlib_module_names)   # True

「その名前が標準ライブラリかどうか」を判定できるのが便利な点です。"requests" in sys.stdlib_module_namesFalse なら、それは pip で入れる外部ライブラリだと判断できます。なお、この集合には環境によって実際には読み込めないモジュール名も含まれます。使えるかどうかは import して確かめてください。

古くからある方法として help("modules") もあります。ただしこれはインポート可能なモジュールを片っ端から探しに行くため、環境によっては表示までかなり待たされ、警告メッセージが混ざることもあります。手軽に確認したいだけなら、先に紹介した方法のほうが扱いやすいです。各モジュールの詳しい説明は、Python公式の標準ライブラリリファレンスと本記事の標準ライブラリ一覧をあわせて確認してください。

Pythonのコードから一覧を取得する|importlib.metadata

一覧をコマンドではなくプログラムの中で扱いたいときは、標準ライブラリの importlib.metadata を使います(Python 3.8以降)。自作ツールで「必要なライブラリが入っているか」を確認する処理などに向いています。

from importlib.metadata import distributions, version, PackageNotFoundError

# インストール済みパッケージを名前順に表示(pip freeze に近い形)
pkgs = [(d.metadata["Name"], d.version) for d in distributions()]
for name, ver in sorted(pkgs, key=lambda p: (p[0] or "").lower()):
    print(f"{name}=={ver}")

# 特定のライブラリのバージョンだけ調べる
try:
    print(version("requests"))
except PackageNotFoundError:
    print("requests は入っていません")
📌
一覧に出る名前と import する名前は別物のことがある

一覧に表示されるのは配布名(pipで入れるときの名前)です。コードで書くimport名と一致しないライブラリがあります。たとえば beautifulsoup4from bs4 import BeautifulSoupopencv-pythonimport cv2python-dotenvfrom dotenv import load_dotenv と書きます。一覧に無いように見えても、別名で入っているだけの場合があります。

迷ったらこの3手順

①仮想環境を有効化する → ②python -m pip list で全体を見る → ③気になる1つを python -m pip show 名前 で確認する。この順番なら、インストール先の取り違えはほぼ発見できます。それでも ModuleNotFoundError が消えないときはよくあるエラー解決ページで原因を絞り込めます。

よく使う標準ライブラリ(モジュール)一覧|インストール不要

用途別の外部ライブラリに進む前に、まず標準ライブラリ(標準モジュール)を押さえておきましょう。標準ライブラリはPythonをインストールした時点で使えるため pip install は不要。import するだけで、ファイル操作・日付処理・JSON・正規表現などの実務でよく使う処理がすぐに書けます。「まず標準で書けないか?」を考える習慣が、依存を減らし保守しやすいコードにつながります。全モジュールの一覧と詳細は、一次情報であるPython公式の標準ライブラリリファレンスで確認できます。

数が多いので、ここでは公式リファレンスの分類の考え方に沿って用途ごとのグループに分けて紹介します(全35モジュール)。頭から読む必要はありません。やりたいことに近い見出しを探し、そのグループのモジュール名を import して試すのが一番の近道です。

ファイル・フォルダ・パスの操作

モジュール主な用途こんなときに
osOS機能へのアクセス環境変数の取得、フォルダ作成、ファイル削除
pathlibパスをオブジェクトとして扱うパス結合・存在チェック・拡張子判定(新規コードはこちら推奨)
shutil高レベルなファイル操作フォルダごとコピー・移動、zip作成
globワイルドカードでファイル検索*.csv をまとめて取得
zipfileZIPの圧縮・展開複数ファイルをまとめて配布・バックアップ

日付と時刻

モジュール主な用途こんなときに
datetime日付・時刻の計算と整形今日の日付、日数差、フォーマット変換
time時間計測・待機処理時間の測定、sleepでの待機

データの読み書き・保存

モジュール主な用途こんなときに
jsonJSONの読み書きAPI応答の解析、設定ファイルの保存
csvCSVの読み書き表データの入出力(軽量用途)
sqlite3軽量データベースサーバー不要のローカルDB保存(実装例=tkinter×SQLiteで配当金管理ツールを作る・3.12のadapter非推奨と金額の型設計つき)
picklePythonオブジェクトの保存・復元作業途中のデータを丸ごと保存(信頼できないファイルは読み込まない)

文字列・正規表現

モジュール主な用途こんなときに
re正規表現によるパターン処理文字列の抽出・置換・バリデーション
textwrap文章の折り返し・字下げ調整長文を指定幅で整形、dedentで余分なインデント除去

数値計算・データ構造

モジュール主な用途こんなときに
math数学関数・定数平方根、三角関数、円周率、切り上げ
decimal10進数の正確な計算金額計算など、小数の誤差を出したくないとき
statistics統計計算平均・中央値・標準偏差
random乱数・シャッフルくじ引き、ランダム抽出、サンプリング
collections便利なデータ構造出現回数集計(Counter)、初期値付き辞書
itertools反復処理の高速ツール組み合わせ・順列・連続グループ化
functools関数ユーティリティlru_cacheで高速化、partial

システム操作・コマンドライン

モジュール主な用途こんなときに
sysインタプリタ制御・コマンドライン引数引数受け取り、標準入出力、終了処理、標準モジュール名の一覧
subprocess外部コマンド実行シェルコマンドをPythonから呼ぶ
argparseコマンドライン引数の解析CLIツールにオプションを付ける

ネットワーク・非同期処理

モジュール主な用途こんなときに
urllibURL処理・簡易HTTP外部ライブラリ無しでのダウンロード
http.server簡易Webサーバーpython -m http.server でフォルダをブラウザ表示(動作確認用)
asyncio非同期処理大量のI/Oを並行実行

開発を助ける機能(ログ・型・テスト)

モジュール主な用途こんなときに
loggingログ出力printの卒業、レベル別の記録
typing型ヒントListDictOptional で可読性UP
dataclassesデータ保持クラス@dataclass で定型コード削減
enum列挙型定数に名前を付けて安全に扱う
unittestテストの自動化関数の動作を毎回同じ手順で検証(追加インストール不要)

ハッシュ・ID・セキュリティ

モジュール主な用途こんなときに
hashlibハッシュ値の計算SHA256でファイル・文字列を照合
uuid一意なID生成重複しないID・ファイル名
secrets安全な乱数・トークン生成パスワードやURLトークンの生成(この用途に random は使わない)

GUI(デスクトップアプリ)

モジュール主な用途こんなときに
tkinterGUIアプリ作成デスクトップアプリ・ウィンドウ画面が欲しいとき(初心者アプリ100本中級アプリ100本

実際の使用感は、たとえば次のように import 1行で書けます。

import datetime, json, random
from collections import Counter

# 今日の日付を整形
print(datetime.date.today().strftime("%Y年%m月%d日"))

# リストの出現回数を集計
votes = ["A", "B", "A", "C", "A", "B"]
print(Counter(votes))          # Counter({'A': 3, 'B': 2, 'C': 1})

# 辞書をJSON文字列に
print(json.dumps({"name": "佐藤", "age": 30}, ensure_ascii=False))
標準ライブラリはすべてインストール不要

上記はすべて追加インストール不要でそのまま動きます。標準で実現できる処理は標準で済ませ、足りないときだけ次の外部ライブラリを導入しましょう。

🌐

Web・HTTP

🌍
requests
WebHTTP初心者向け

PythonからHTTPリクエストを数行で送れる定番ライブラリ。GET・POST・PUT・DELETE、認証、セッション管理に対応。REST APIとの通信や、Webページの取得で広く使われています。入門書やサンプルコードにもよく登場するため、詰まったときに解決の情報を見つけやすいのも利点です。

pip install requests
import requests

# GETリクエスト
res = requests.get("https://api.example.com/users")
data = res.json()          # JSON自動パース
print(res.status_code)     # 200

# POSTリクエスト
res = requests.post(
    "https://api.example.com/login",
    json={"user": "alice", "password": "secret"},
    timeout=10
)
print(res.json())
httpx
Web非同期HTTP/2

requestsに近い書き方のまま、非同期(async/await)に対応したHTTPクライアント。HTTP/2・タイムアウト・リトライ設定が充実。FastAPIのテストにも標準採用されています。大量のリクエストを並列処理したいときに使います。

pip install httpx
import httpx
import asyncio

# 同期(requestsと同じ感覚で使える)
with httpx.Client() as client:
    res = client.get("https://httpbin.org/get")
    print(res.json())

# 非同期(高速並列取得)
async def fetch_all(urls):
    async with httpx.AsyncClient() as client:
        tasks = [client.get(url) for url in urls]
        return await asyncio.gather(*tasks)

results = asyncio.run(fetch_all(["https://httpbin.org/get"] * 5))
🍲
BeautifulSoup4
WebスクレイピングHTML解析

HTMLやXMLを解析してデータを抽出するスクレイピングライブラリ。CSSセレクターやタグ名で要素を検索でき、直感的に使えます。requestsと組み合わせてWebページの情報を自動収集するツール開発に使います。

pip install beautifulsoup4 lxml
import requests
from bs4 import BeautifulSoup

html = requests.get("https://example.com").text
soup = BeautifulSoup(html, "lxml")

# タイトル取得
print(soup.title.text)

# 全リンクを取得
for a in soup.find_all("a", href=True):
    print(a["href"], a.get_text(strip=True))

# CSSセレクターで取得
items = soup.select("ul.menu > li > a")
🍶
Flask
Webフレームワーク軽量

シンプルで軽量なPython Webフレームワーク。数行のコードでWebアプリを作れる手軽さが魅力。REST API・プロトタイプ・小〜中規模のWebアプリ開発に使われます。学習コストが低くDjangoへのステップアップにも使えます。

pip install flask
from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route("/")
def index():
    return "Hello, Flask!"

@app.route("/api/users", methods=["GET", "POST"])
def users():
    if request.method == "POST":
        data = request.json
        return jsonify({"created": data}), 201
    return jsonify({"users": ["Alice", "Bob"]})

if __name__ == "__main__":
    app.run(debug=True)  # http://localhost:5000
🚀
FastAPI
WebAPI非同期中級〜

型ヒントを活用したWeb APIフレームワーク。自動でAPIドキュメント(Swagger UI)が生成されるのが大きな特徴です。公式サイトではNode.js・Goに匹敵する性能を掲げており、型ヒントによる入力チェックやエディタ補完が効きやすい点とあわせて、API開発で採用されています。

pip install fastapi uvicorn
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class User(BaseModel):
    name: str
    age: int

@app.get("/users/{user_id}")
async def get_user(user_id: int):
    return {"id": user_id, "name": "Alice"}

@app.post("/users")
async def create_user(user: User):
    return {"created": user.model_dump()}

# 起動: uvicorn main:app --reload
# ドキュメント: http://localhost:8000/docs
🦄
Django
Webフレームワークフルスタック中級〜

Python最大の本格的Webフレームワーク。管理画面・認証・ORM・テンプレートエンジンが標準搭載の「バッテリー同梱」設計。大規模なWebアプリ・ECサイト・SNSなど複雑なシステムの開発に向いており、Instagram・PinterestもDjangoで作られています。

pip install django
from django.db import models
from django.http import HttpResponse
from django.views import View

# モデル定義(DBテーブルを自動生成)
class Article(models.Model):
    title = models.CharField(max_length=200)
    body  = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

# ビュー
class ArticleView(View):
    def get(self, request, pk):
        article = Article.objects.get(pk=pk)
        return HttpResponse(article.title)

# 起動: python manage.py runserver
# 管理画面: admin.site.register(Article)
🎭
Playwright
ブラウザ自動化E2Eテスト中級〜

Microsoftが開発したモダンなブラウザ自動化ライブラリ。Chrome・Firefox・Safariを、自動待機(auto-wait)を備えた仕組みで安定して操作できます。非同期対応・自動待機・スクリーンショット・PDF出力に標準対応。E2Eテスト自動化やスクレイピングの現代的な選択肢です。

pip install playwright && playwright install
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()
    page.goto("https://example.com")

    # 要素操作(読み込みを自動で待つ)
    page.fill("input[name='q']", "Python")
    page.click("button[type='submit']")

    # スクリーンショット保存
    page.screenshot(path="result.png")

    # テキスト取得
    print(page.locator("h1").text_content())
    browser.close()
📊

データ分析

📚
pandas・NumPyを体系的に学ぶなら

データ分析ライブラリは公式ドキュメントだけだと全体像がつかみにくいので、1冊通して手を動かすのが近道です。pandas 開発者本人が書いたPythonによるデータ分析入門 第3版(当サイトのおすすめ本ランキング総合5位)なら、読み込み・集計・可視化までの流れをまとめて追えます。

🔢
NumPy
数値計算配列行列

Pythonの数値計算の基盤となるライブラリ。多次元配列(ndarray)を高速に操作でき、行列演算・統計計算・線形代数などに対応。pandasやscikit-learnなど多くのライブラリの土台になっています。

pip install numpy
import numpy as np

# 配列の作成と演算
a = np.array([1, 2, 3, 4, 5])
print(a * 2)           # [2 4 6 8 10]
print(a.mean())        # 3.0
print(a.std())         # 1.414...

# 2次元配列(行列)
mat = np.zeros((3, 3))
eye = np.eye(3)        # 単位行列
print(np.dot(mat, eye))

# ブロードキャスト
b = np.arange(12).reshape(3, 4)
print(b + 10)          # 全要素に10加算
🐼
pandas
データ分析CSVExcel

表形式データの操作・分析に特化したライブラリ。CSV・Excel・SQLからデータを読み込み、フィルタリング・集計・結合・欠損値処理などをSQLライクな直感的な操作で実行できます。データサイエンスの現場で広く使われています。

pip install pandas openpyxl
import pandas as pd

# CSV読み込み
df = pd.read_csv("data.csv", encoding="utf-8")

# 基本情報
print(df.shape)            # (行数, 列数)
print(df.describe())       # 統計サマリー

# フィルタリング・集計
adults = df[df["age"] >= 18]
by_city = df.groupby("city")["salary"].mean()

# Excel書き出し
df.to_excel("output.xlsx", index=False)
📈
Matplotlib
グラフ可視化グラフ描画

Pythonのグラフ描画ライブラリの定番。折れ線・棒・円・散布図・ヒストグラムなどあらゆる種類のグラフを描画できます。tkinterへの埋め込みも可能で、GUIアプリにグラフを組み込む際に活躍します。既定フォントは日本語のグリフを持たないため、ラベルに日本語を入れると□(豆腐)に文字化けします。下のコード例のように font.family を指定するのが追加インストール不要で確実です(フォント名は環境によって異なります)。パッケージで済ませたい場合は pip install matplotlib-fontja(import 名は matplotlib_fontja)があり、PyPI では Python 3.12・3.13 対応と記載されています(当サイトでは未検証)。よく紹介される japanize-matplotlib(最終リリース 1.1.3・2020年10月21日)は import 時に from distutils.version import LooseVersion を実行するため、distutils が標準ライブラリから外れた Python 3.12 以降では標準では解決できず、当サイトの検証環境(Python 3.12.10)ではこの行で ModuleNotFoundError になりました(2026年8月26日にPyPI公開のソースで確認。setuptools 同梱の互換 distutils が有効な環境では import が通る場合もあります)。本ページでは使用していません。

pip install matplotlib
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = "Meiryo"   # 日本語フォント(Windows。macOSは "Hiragino Sans")

# 折れ線グラフ
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 6, 3]
plt.plot(x, y, marker="o", label="売上")
plt.title("月別売上推移")
plt.xlabel("月"); plt.ylabel("万円")
plt.legend(); plt.grid(True)

# 円グラフ
labels = ["食費", "家賃", "交通費", "娯楽"]
sizes = [35, 40, 10, 15]
plt.pie(sizes, labels=labels, autopct="%1.1f%%")

plt.show()
🗄️
SQLAlchemy
DBORM中級〜

Pythonで広く使われているORM(オブジェクト関係マッピング)。SQLを書かずにPythonのクラスでDBを操作できるORMモードと、生SQLを柔軟に扱えるCoreモードの2種類があります。SQLite・MySQL・PostgreSQL・Oracle など主要なDBに対応。

pip install sqlalchemy
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import DeclarativeBase, Session

engine = create_engine("sqlite:///app.db")

class Base(DeclarativeBase): pass

class User(Base):
    __tablename__ = "users"
    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    email = Column(String(100), unique=True)

Base.metadata.create_all(engine)

with Session(engine) as session:
    session.add(User(name="Alice", email="alice@example.com"))
    session.commit()
    users = session.query(User).all()
📉
Seaborn
可視化統計グラフ初心者向け

Matplotlibをベースにした統計データ可視化ライブラリ。少ないコードで美しい統計グラフ(ヒートマップ・バイオリンプロット・ペアプロット)を描画できます。pandasのDataFrameと直接連携し、データ分析の探索的可視化(EDA)で使われます。

pip install seaborn
import seaborn as sns
import matplotlib.pyplot as plt

# サンプルデータ読み込み
tips = sns.load_dataset("tips")

# 散布図 + 回帰直線
sns.regplot(data=tips, x="total_bill", y="tip")

# ヒートマップ(相関行列)
corr = tips.select_dtypes("number").corr()
sns.heatmap(corr, annot=True, cmap="coolwarm", fmt=".2f")

# ペアプロット(全変数の関係を一覧表示)
sns.pairplot(tips, hue="sex")

plt.show()
Polars
データ分析高速DataFrame

Rustで書かれたDataFrameライブラリ。マルチコアを使った並列処理と、遅延評価(Lazy API)による自動最適化、型安全なAPIが特徴です。pandasに似た操作感で書けるため、手元のPCで大きなデータを扱いたい場面の選択肢になります。

pip install polars
import polars as pl

# CSV読み込み・フィルタリング・集計
df = pl.read_csv("data.csv")

result = (
    df
    .filter(pl.col("age") >= 18)
    .group_by("city")
    .agg(
        pl.col("salary").mean().alias("avg_salary"),
        pl.len().alias("count")
    )
    .sort("avg_salary", descending=True)
)
print(result)

# 遅延評価(大規模データ向け)
lazy = df.lazy().filter(pl.col("score") > 90).collect()
📊
Plotly
インタラクティブ可視化3Dグラフ

ブラウザ上でインタラクティブに操作できるグラフを生成するライブラリ。ズーム・パン・ホバー情報表示が標準で使え、3Dグラフ・地図・アニメーショングラフにも対応。DashというWebダッシュボードフレームワークと組み合わせると強力なデータアプリを作れます。

pip install plotly
import plotly.express as px
import plotly.graph_objects as go

# 散布図(ホバーで詳細表示)
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length",
                 color="species", title="アイリスデータセット")
fig.show()   # ブラウザで開く

# インタラクティブ棒グラフ
fig = go.Figure(go.Bar(
    x=["1月", "2月", "3月"],
    y=[120, 180, 150],
    text=[120, 180, 150], textposition="auto"
))
fig.update_layout(title="月別売上")
fig.write_html("chart.html")   # HTMLとして保存
🖼️

画像・映像処理

🖼️
Pillow(PIL)
画像処理変換初心者向け

Pythonで画像を開く・保存・変換・加工するための定番ライブラリ。リサイズ・切り抜き・回転・フィルター・テキスト描画・フォーマット変換(JPG・PNG・GIF・WEBP等)に対応。tkinterでJPEGなど幅広い形式の画像を表示したいときにも使われます。

pip install pillow
from PIL import Image, ImageFilter, ImageDraw, ImageFont

img = Image.open("photo.jpg")

# リサイズ
img_resized = img.resize((800, 600))

# フィルター
img_blur = img.filter(ImageFilter.GaussianBlur(radius=3))
img_gray = img.convert("L")  # グレースケール

# テキスト描画
draw = ImageDraw.Draw(img)
draw.text((10, 10), "Hello!", fill="white")

img.save("output.png")
👁️
OpenCV (opencv-python)
コンピュータビジョン動画処理中級〜

コンピュータビジョン(画像認識)で広く使われているライブラリ。顔検出・物体検出・動画処理・カメラキャプチャ・輪郭抽出などに対応。リアルタイム処理が得意で、C++で書かれた高速なコアをPythonから呼び出せます。

pip install opencv-python
import cv2

# 画像読み込みと変換
img = cv2.imread("photo.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)

# 顔検出
face_cascade = cv2.CascadeClassifier(
    cv2.data.haarcascades + "haarcascade_frontalface_default.xml"
)
faces = face_cascade.detectMultiScale(gray, 1.1, 4)
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)

cv2.imshow("Result", img); cv2.waitKey(0)
📱
qrcode
QRコード画像生成初心者向け

URLやテキストからQRコード画像を生成するライブラリ。数行のコードで即座にQRコードを作成でき、色・サイズ・エラー訂正レベルのカスタマイズも可能。名刺・ポスター・Webサイト用のQRコード生成ツール開発に使えます。

pip install qrcode pillow
import qrcode
from PIL import Image

# シンプルなQRコード生成
qr = qrcode.make("https://pythonland.example.com")
qr.save("qr.png")

# カスタマイズ版
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=10,
    border=4,
)
qr.add_data("https://pythonland.example.com")
qr.make(fit=True)
img = qr.make_image(fill_color="darkblue", back_color="white")
img.save("qr_custom.png")
🎬
MoviePy
動画編集GIF生成中級〜

Pythonで動画の切り出し・結合・テキスト追加・速度変更・GIF変換などを行うライブラリ。ffmpegをラップしており動画処理スクリプトを簡潔に書けます。字幕入れ・スライドショー生成・動画圧縮ツールなどの自動化に活用できます。

pip install moviepy
# MoviePy 2.0以降。旧版(1.x)は from moviepy.editor import ... でした
from moviepy import VideoFileClip, concatenate_videoclips

# 動画を読み込んで一部を切り出し
clip = VideoFileClip("input.mp4")
trimmed = clip.subclipped(10, 30)   # 10秒〜30秒を切り出し(2.0で subclip → subclipped)

# 別の動画とつなげて1本にする
intro = VideoFileClip("intro.mp4")
final = concatenate_videoclips([intro, trimmed])

# 保存
final.write_videofile("output.mp4", fps=24)

# 冒頭3秒をGIFに変換
clip.subclipped(0, 3).write_gif("preview.gif", fps=10)

# ※テキストを重ねる TextClip は font にフォントファイル(.ttf)のパス指定が必要
#   (未指定だと環境によりエラーになるため、ここでは font 不要の操作を掲載)
🔍
pytesseract
OCR文字認識中級〜

画像やPDFから文字を読み取るOCR(光学文字認識)ライブラリ。Google製Tesseract OCRエンジンのPythonラッパーです。名刺・領収書・スキャンした書類からテキストを抽出する自動化ツール開発に使えます。日本語を含む100以上の言語に対応。

pip install pytesseract pillow
import pytesseract
from PIL import Image

# 画像からテキスト抽出
img = Image.open("document.png")
text = pytesseract.image_to_string(img, lang="jpn")
print(text)

# 詳細情報付き(位置・信頼度)
data = pytesseract.image_to_data(
    img, lang="jpn",
    output_type=pytesseract.Output.DICT
)
for i, word in enumerate(data["text"]):
    if word.strip():
        print(f"{word} (信頼度: {data['conf'][i]}%)")
🤖

機械学習・AI

💻
機械学習・深層学習をローカルで動かすなら

PyTorchやTensorFlowでモデルを自分のPCで学習させる場合、メモリやGPUに余裕のあるマシンだと快適に動きます。用途別の目安はPython学習・機械学習向けのおすすめPC・推奨スペックでまとめています。

フレームワークの使い方より先に仕組みから理解したい方には、NumPy だけでディープラーニングを実装していくゼロから作るDeep Learningが定番です。

🧠
scikit-learn
機械学習分類回帰中級〜

機械学習アルゴリズムを統一されたAPIで提供するライブラリ。決定木・ランダムフォレスト・SVM・k近傍法・線形回帰など多数のアルゴリズムと、前処理・モデル評価・パイプライン機能が揃っています。深層学習以外のMLはほぼこれで対応できます。

pip install scikit-learn
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris

# データ準備
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)
# 学習・予測・評価
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)
pred = model.predict(X_test)
print(f"精度: {accuracy_score(y_test, pred):.2%}")
🔥
PyTorch
深層学習GPU上級〜

Meta(旧Facebook)が開発し、現在は PyTorch Foundation が管理する深層学習フレームワーク。動的計算グラフによる直感的なコーディングが特徴で、研究用途の実装コードでもよく見かけます。CNNや Transformer などのニューラルネットワークを実装でき、GPU加速にも対応しています。

pip install torch torchvision
import torch
import torch.nn as nn

# シンプルなニューラルネットワーク
class Net(nn.Module):
    def __init__(self):
        super().__init__()
        self.layers = nn.Sequential(
            nn.Linear(784, 128),
            nn.ReLU(),
            nn.Linear(128, 10)
        )
    def forward(self, x):
        return self.layers(x)

model = Net()
x = torch.randn(32, 784)   # バッチサイズ32
out = model(x)
print(out.shape)             # torch.Size([32, 10])
💬
openai
LLMChatGPTAPI

OpenAI APIの公式Pythonクライアント。チャット補完・DALL·E(画像生成)・Whisper(音声認識)・Embeddings といったAPIをPythonから簡単に呼び出せます。チャットボット・文章要約・コード生成・画像生成ツールを素早く作れます。下のコード例では軽量な gpt-4o-mini を指定していますが、指定できるモデルIDは公式ドキュメントのモデル一覧で確認してください。

pip install openai
from openai import OpenAI

client = OpenAI()   # OPENAI_API_KEY環境変数を自動読み込み

# チャット
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "あなたはPythonの先生です"},
        {"role": "user",   "content": "forループを簡単に説明して"}
    ]
)
print(response.choices[0].message.content)
🤗
transformers(HuggingFace)
LLM自然言語処理画像認識上級〜

HuggingFaceが提供する大規模言語モデル(LLM)・画像認識・音声認識などのAIモデルを統一APIで使えるライブラリ。BERT・GPT・LLaMA・Whisperなど公開済みの主要モデルを数行のコードでダウンロードして実行できます。AIの研究・開発で広く使われています。

pip install transformers torch
from transformers import pipeline

# 感情分析
classifier = pipeline("sentiment-analysis")
result = classifier("I love Python programming!")
print(result)  # [{'label': 'POSITIVE', 'score': 0.9998}]

# 日本語テキスト生成
generator = pipeline("text-generation",
                     model="rinna/japanese-gpt2-medium")
output = generator("Pythonは", max_length=50)
print(output[0]["generated_text"])

# 翻訳(日→英)
translator = pipeline("translation",
                      model="Helsinki-NLP/opus-mt-ja-en")
print(translator("私はPythonを勉強しています")[0]["translation_text"])
🧬
anthropic
LLMClaude APIAI

Anthropic社のAI「Claude」をPythonから呼び出す公式SDKです。チャットボット・文章要約・コード生成・データ分析ツールを素早く開発でき、プロンプトキャッシングや長いコンテキスト処理が強みです。2026年8月時点の現行世代は Claude Opus 5・Sonnet 5・Haiku 4.5 などで、指定できるモデルIDは公式ドキュメントのモデル一覧で確認してください(旧世代のIDも当面は利用できますが、公式ではLegacy扱いになります)。

pip install anthropic
import anthropic

client = anthropic.Anthropic()  # ANTHROPIC_API_KEY環境変数を自動読み込み

# チャット
message = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Pythonのリスト内包表記を教えてください"}
    ]
)
print(message.content[0].text)

# ストリーミング(リアルタイム出力)
with client.messages.stream(
    model="claude-sonnet-5",
    max_tokens=256,
    messages=[{"role": "user", "content": "こんにちは!"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
⚙️

自動化・ツール

🕹️
Selenium
ブラウザ自動化テスト中級〜

ブラウザを自動操作するライブラリ。Webサイトへのログイン・フォーム入力・ボタンクリック・スクリーンショット取得などをコードで自動実行できます。JavaScriptで動的に生成されるコンテンツのスクレイピングにも有効。

pip install selenium webdriver-manager
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(
    service=Service(ChromeDriverManager().install())
)
driver.get("https://www.google.com")

# 検索ボックスに入力
box = driver.find_element(By.NAME, "q")
box.send_keys("Python tkinter\n")

# 結果を取得
results = driver.find_elements(By.CSS_SELECTOR, "h3")
for r in results[:5]:
    print(r.text)

driver.quit()
🖱️
PyAutoGUI
GUI自動化マウス操作キーボード

マウス操作・キーボード入力・スクリーンショットをコードで自動化するライブラリ。デスクトップアプリの自動テストや、繰り返し作業の自動化に使えます。Excelの操作自動化・定型業務の自動化など幅広い用途があります。

pip install pyautogui pillow
import pyautogui
import time

# マウス移動・クリック
pyautogui.moveTo(100, 200, duration=0.5)
pyautogui.click()
pyautogui.doubleClick(300, 400)

# キーボード入力
pyautogui.typewrite("Hello, Python!", interval=0.05)
pyautogui.hotkey("ctrl", "c")   # コピー

# スクリーンショット
img = pyautogui.screenshot()
img.save("screen.png")

# 画像を画面上で検索
pos = pyautogui.locateCenterOnScreen("button.png")
if pos:
    pyautogui.click(pos)
schedule
定期実行スケジューラー初心者向け

シンプルな記法でタスクを定期実行するスケジューラーライブラリ。「毎日9時に実行」「10分ごとに実行」などを人間に読みやすい書き方で設定できます。バックグラウンドで動かす定期処理・通知・データ収集に便利です。

pip install schedule
import schedule
import time

def send_report():
    print("日報を送信しました")

def backup_data():
    print("バックアップ実行")

# スケジュール設定
schedule.every().day.at("09:00").do(send_report)
schedule.every(10).minutes.do(backup_data)
schedule.every().monday.at("08:30").do(send_report)

# 実行ループ
while True:
    schedule.run_pending()
    time.sleep(1)
tqdm
プログレスバーUX改善初心者向け

ループ処理にプログレスバーを表示するライブラリ。既存の for ループを1行変更するだけで、処理の進捗・残り時間・速度をターミナルにリアルタイム表示できます。時間のかかるバッチ処理や機械学習の学習進捗表示に便利。

pip install tqdm
from tqdm import tqdm
import time

# リストに適用するだけ
for i in tqdm(range(100), desc="処理中"):
    time.sleep(0.01)
# 処理中: 100%|████████| 100/100 [00:01<00:00, 99.5it/s]

# ネストも可能
for batch in tqdm(batches, desc="Epoch"):
    for sample in tqdm(batch, leave=False):
        train(sample)

# 手動更新
with tqdm(total=200) as pbar:
    pbar.update(50)
    pbar.set_description("フェーズ1完了")
📗
openpyxl
Excel自動化初心者向け

Excelファイル(.xlsx)を読み書きするライブラリ。セルへの値書き込み・書式設定・グラフ作成・数式入力などExcelの多くの操作をPythonで自動化できます。Excel業務の自動化でよく使われる定番ライブラリです。

pip install openpyxl
from openpyxl import Workbook, load_workbook
from openpyxl.styles import Font, PatternFill, Alignment

# 新規作成
wb = Workbook()
ws = wb.active
ws.title = "売上データ"

# ヘッダー(太字・背景色)
ws["A1"] = "商品名"
ws["A1"].font = Font(bold=True, size=12)
ws["A1"].fill = PatternFill("solid", fgColor="4472C4")

# データ書き込み
for i, row in enumerate(data, 2):
    ws.cell(row=i, column=1, value=row["name"])
    ws.cell(row=i, column=2, value=row["sales"])

wb.save("report.xlsx")
Pydantic
データ検証型安全中級〜

型ヒントを使ってデータの検証・変換を行うライブラリ。Pythonのデータクラスを定義するだけで、自動的に型チェック・バリデーション・JSON変換が行われます。FastAPIの内部でも使用されており、APIの入出力データ管理に非常に有効です。

pip install pydantic
from pydantic import BaseModel, EmailStr, field_validator

class User(BaseModel):
    name: str
    age: int
    email: str

    @field_validator("age")
    @classmethod
    def age_must_be_positive(cls, v):
        if v < 0:
            raise ValueError("年齢は0以上でなければなりません")
        return v

# 自動バリデーション
user = User(name="Alice", age=25, email="alice@example.com")
print(user.model_dump_json())

# 型不一致は自動変換
user2 = User(name="Bob", age="30", email="bob@example.com")
📧
yagmail
メール送信Gmail初心者向け

GmailをPythonから簡単に送信できるライブラリ。標準の smtplib より大幅に少ないコードで添付ファイル・HTML形式のメールを送信できます。定期レポートの自動送信・エラー通知メール・フォーム送信の自動化などに使えます。

pip install yagmail
import yagmail

# 初回のみパスワードをキーチェーンに保存
# yagmail.register("your@gmail.com", "パスワード")

yag = yagmail.SMTP("your@gmail.com")

# テキストメール
yag.send(
    to="recipient@example.com",
    subject="Pythonからの自動送信テスト",
    contents="こんにちは!Pythonから送信しました。"
)

# 添付ファイル付き・HTML形式
yag.send(
    to="recipient@example.com",
    subject="月次レポート",
    contents=["<h1>月次レポート</h1><p>添付をご確認ください。</p>",
              "report.xlsx"]  # ファイルパスをリストに追加
)
📝
python-docx
Word文書自動化初心者向け

Word文書(.docx)をPythonで作成・編集するライブラリ。見出し・段落・表・画像・フォント設定などWordの主要機能を操作できます。議事録・契約書・報告書の自動生成や、テンプレートからの一括文書作成に活躍します。

pip install python-docx
from docx import Document
from docx.shared import Pt, RGBColor

doc = Document()

# 見出し
doc.add_heading("Pythonで自動生成した報告書", level=1)

# 段落(フォント設定付き)
para = doc.add_paragraph()
run = para.add_run("本日の作業内容を報告します。")
run.font.size = Pt(12)
run.font.color.rgb = RGBColor(0x1a, 0x1a, 0x2e)

# 表の作成
table = doc.add_table(rows=3, cols=3)
table.style = "Table Grid"
table.cell(0, 0).text = "項目"
table.cell(0, 1).text = "結果"

doc.save("report.docx")
📄
fpdf2
PDF生成帳票初心者向け

PDFファイルをゼロから生成するライブラリ。テキスト・画像・図形・表を自由に配置でき、日本語フォントにも対応。請求書・領収書・証明書・レポートなどのPDF帳票を自動生成するシステムに利用されます。外部ソフト不要でPDFを作成できます。

pip install fpdf2
from fpdf import FPDF

class PDF(FPDF):
    def header(self):
        self.set_font("Helvetica", "B", 14)
        self.cell(0, 10, "Monthly Report", align="C", new_x="LMARGIN", new_y="NEXT")

    def footer(self):
        self.set_y(-15)
        self.set_font("Helvetica", "I", 8)
        self.cell(0, 10, f"Page {self.page_no()}", align="C")

pdf = PDF()
pdf.add_page()
pdf.set_font("Helvetica", size=12)
pdf.cell(0, 10, "Hello, PDF World!", new_x="LMARGIN", new_y="NEXT")
pdf.multi_cell(0, 8, "fpdf2 で日本語PDFを生成するには\nfont_familyに日本語フォントを追加します。")
pdf.output("output.pdf")
🕐
Arrow
日時操作タイムゾーン初心者向け

Pythonの標準 datetime より直感的に日時を操作できるライブラリ。タイムゾーン変換・相対的な日時表現(「3時間後」「先週の月曜」)・人間に読みやすい表示(「2時間前」)などが簡単に書けます。ログ解析・スケジュール管理ツールに便利です。

pip install arrow
import arrow

# 現在時刻(タイムゾーン付き)
now = arrow.now("Asia/Tokyo")
print(now.format("YYYY-MM-DD HH:mm:ss"))  # 2025-04-14 09:00:00

# 相対的な日時操作
tomorrow    = now.shift(days=1)
next_monday = now.shift(weekday=0)
three_ago   = now.shift(hours=-3)

# 人間に読みやすい表示
print(now.humanize(locale="ja"))   # 数秒前

# 文字列→arrowオブジェクト
dt = arrow.get("2025-12-31", "YYYY-MM-DD")
print(dt.to("UTC"))   # UTC変換
👁️
watchdog
ファイル監視自動化中級〜

ファイルやディレクトリの変更をリアルタイムで監視するライブラリ。ファイルの作成・更新・削除・移動を検知してコールバック関数を自動実行できます。「CSVが更新されたら自動処理」「画像が追加されたらリサイズ」などの自動化に使えます。

pip install watchdog
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import time

class MyHandler(FileSystemEventHandler):
    def on_created(self, event):
        if not event.is_directory:
            print(f"新規ファイル作成: {event.src_path}")

    def on_modified(self, event):
        if not event.is_directory:
            print(f"ファイル変更: {event.src_path}")

observer = Observer()
observer.schedule(MyHandler(), path="./watch_dir", recursive=True)
observer.start()

try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    observer.stop()
observer.join()
🛠️

開発・テスト・ユーティリティ

🔐
python-dotenv
環境変数設定管理初心者向け

.env ファイルから環境変数を読み込むライブラリ。APIキーやパスワードをコードに直接書かずに安全に管理できます。GitHubに .env をアップしないようにすることでシークレット情報の漏洩を防げます。

pip install python-dotenv
# .env ファイル(Gitに含めない!)
# API_KEY=your_secret_key
# DB_PASSWORD=password123

from dotenv import load_dotenv
import os

load_dotenv()   # .envを読み込む

api_key = os.getenv("API_KEY")
db_pass = os.getenv("DB_PASSWORD", "default")

print(api_key)   # your_secret_key
🧪
pytest
テストユニットテスト中級〜

Pythonのテストで広く使われているテストフレームワーク。シンプルな assert 文でテストを書け、フィクスチャ・パラメータ化テスト・カバレッジ計測などが充実しています。標準の unittest のようにクラスを用意しなくても、関数1つからテストを書き始められるのが特徴です。

pip install pytest pytest-cov
# test_calculator.py
import pytest
from calculator import add, divide

def test_add():
    assert add(2, 3) == 5
    assert add(-1, 1) == 0

def test_divide_by_zero():
    with pytest.raises(ZeroDivisionError):
        divide(10, 0)

@pytest.mark.parametrize("a,b,expected", [
    (1, 2, 3), (0, 0, 0), (-1, 1, 0),
])
def test_add_parametrized(a, b, expected):
    assert add(a, b) == expected

# 実行: pytest test_calculator.py -v --cov=.
Rich
ターミナルカラー出力初心者向け

ターミナルに美しい出力を表示するライブラリ。色付きテキスト・テーブル・プログレスバー・シンタックスハイライト付きコード・マークダウンをターミナルで表示できます。CLIツール開発や、デバッグ時のprint出力を見やすくするのに使えます。

pip install rich
import time
from rich import print
from rich.console import Console
from rich.table import Table
from rich.progress import track

console = Console()

# カラー・スタイル付き出力
console.print("[bold green]成功![/] ファイルを保存しました")
console.print("[red]エラー:[/] ファイルが見つかりません")

# テーブル表示
table = Table(title="ユーザー一覧")
table.add_column("名前"); table.add_column("年齢")
table.add_row("Alice", "25"); table.add_row("Bob", "30")
console.print(table)

# プログレスバー
for item in track(range(100), description="処理中..."):
    time.sleep(0.02)   # ここに実際の処理を書く
💻
Click
CLIツールコマンドライン中級〜

Pythonでコマンドラインインターフェース(CLIツール)を作るためのフレームワーク。デコレーターを使ってコマンド・オプション・引数を定義でき、ヘルプテキストの自動生成・型変換・プロンプト入力にも対応。FlaskのCLIでも内部使用されています。

pip install click
import click

@click.group()
def cli():
    """PythonLand CLI ツール"""
    pass

@cli.command()
@click.option("--name", "-n", default="World", help="挨拶する名前")
@click.option("--count", "-c", default=1, type=int)
def greet(name, count):
    """挨拶するコマンド"""
    for _ in range(count):
        click.echo(f"Hello, {name}!")

@cli.command()
@click.argument("filepath", type=click.Path(exists=True))
def info(filepath):
    """ファイル情報を表示"""
    click.echo(f"ファイル: {filepath}")

if __name__ == "__main__":
    cli()
# 使用: python app.py greet --name Alice --count 3
📋
Loguru
ロギングデバッグ初心者向け

初期設定なしで使い始められるロギングライブラリ。from loguru import logger の1行でカラフルなログ出力・ファイルへの書き込み・ログローテーションが始まります(標準の logging ではハンドラやフォーマッタの設定が必要な部分です)。例外の自動キャッチ機能も便利。

pip install loguru
from loguru import logger

# すぐ使えるシンプルなロギング
logger.debug("デバッグ情報")
logger.info("処理開始: {}", "main.py")
logger.warning("注意: ディスク残量が少ない")
logger.error("エラーが発生しました")

# ファイル出力(自動ローテーション付き)
logger.add(
    "logs/app_{time}.log",
    rotation="1 day",       # 1日ごとにローテーション
    retention="7 days",     # 7日分保持
    level="INFO"
)

# 例外の自動キャッチ
@logger.catch
def risky_function():
    return 1 / 0
📦
PyInstaller
exe化配布パッケージング

PythonスクリプトをWindows(.exe)・Mac・Linux の実行ファイルに変換するライブラリ。Pythonが入っていない環境でもアプリを動かせるようになります。tkinterで作ったGUIアプリを友人や職場の人に配布したいときに使います。

pip install pyinstaller
# コマンドラインで実行(Pythonコードではなく)

# シンプルな1ファイルexeを作成
# pyinstaller --onefile app.py

# ウィンドウアプリ(コンソールなし)
# pyinstaller --onefile --windowed --icon=icon.ico app.py

# distフォルダにexeが生成される
# dist/app.exe

# 注意:同じOS上でビルドすること
# (Windowsで.exeを作る、Macで.appを作る)
🔒
Paramiko
SSHSFTPサーバー操作中級〜

SSHプロトコルを使ってリモートサーバーに接続・コマンド実行・ファイル転送(SFTP)を行うライブラリ。サーバーの自動デプロイスクリプト・リモートバックアップ・サーバー監視ツールなどインフラ自動化に活躍します。

pip install paramiko
import paramiko

# SSHクライアント
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("192.168.1.100", username="user", password="pass")

# リモートコマンド実行
stdin, stdout, stderr = ssh.exec_command("ls -la /var/www")
print(stdout.read().decode())

# SFTPでファイル転送
sftp = ssh.open_sftp()
sftp.put("local_file.txt", "/remote/path/file.txt")  # アップロード
sftp.get("/remote/log.txt", "downloaded_log.txt")     # ダウンロード

sftp.close(); ssh.close()
⌨️
Typer
CLIツール型ヒント中級〜

型ヒントだけでCLIツールを作れるモダンなフレームワーク。Clickをベースに、関数の型アノテーションから自動でオプション・引数・ヘルプを生成します。Richとの統合で美しいエラー表示にも対応。FastAPIの作者が開発した次世代CLIライブラリです。

pip install typer
import typer
from typing import Optional

app = typer.Typer()

@app.command()
def greet(
    name: str,
    count: int = typer.Option(1, help="繰り返し回数"),
    loud: bool = typer.Option(False, "--loud", "-l", help="大文字で出力"),
):
    """名前を挨拶するコマンド"""
    for _ in range(count):
        msg = f"Hello, {name}!"
        typer.echo(msg.upper() if loud else msg)

@app.command()
def bye(name: str):
    """さよならを言うコマンド"""
    typer.echo(f"Goodbye, {name}!")

if __name__ == "__main__":
    app()
# 使用: python app.py greet Alice --count 3 --loud
🔬
mypy
型チェック静的解析中級〜

Pythonコードの型アノテーションを静的に検査するツール。実行前に型の不一致・存在しない属性・None参照など多くのバグを検出できます。大規模開発での品質担保や、チーム開発でのコード可読性向上に使われます。VS Code / JetBrains とも連携します。

pip install mypy
# app.py
def add(x: int, y: int) -> int:
    return x + y

def greet(name: str) -> str:
    return f"Hello, {name}!"

# 型エラーの例(mypyが検出してくれる)
result = add("hello", 1)   # エラー: str を int に渡している
nums: list[int] = [1, 2, "three"]  # エラー: str が混入

# コマンドラインで実行
# mypy app.py
# app.py:8: error: Argument 1 to "add" has incompatible type "str"; expected "int"
🖤
Black
コードフォーマッター自動整形初心者向け

「妥協しない」コードフォーマッターで、Pythonコードを一定のスタイルに自動整形します。インデント・クォート・行長・空行などを統一し、コードレビューでスタイルを議論する必要がなくなります。保存時に自動実行するようVS Codeと連携するのが定番の使い方です。

pip install black
# 整形前(バラバラなスタイル)
x=1
y =  2
def   foo( a,b,c ):
    return a+b+c
my_list = [1,2,    3,4]

# black を実行: black app.py

# 整形後(Blackが統一)
x = 1
y = 2


def foo(a, b, c):
    return a + b + c


my_list = [1, 2, 3, 4]

# VS Codeで保存時に自動整形するには settings.json に:
# "editor.formatOnSave": true,
# "python.formatting.provider": "black"
☁️
boto3
AWSクラウドS3・Lambda中級〜

AWSの各種サービスをPythonから操作する公式SDK。S3へのファイルアップロード・DynamoDBの操作・Lambda関数の呼び出し・EC2インスタンスの制御など200以上のAWSサービスに対応。クラウドを使ったバックエンド・データ処理・自動化で使われます。

pip install boto3
import boto3

# S3バケットにファイルをアップロード
s3 = boto3.client("s3",
    aws_access_key_id="YOUR_KEY",
    aws_secret_access_key="YOUR_SECRET",
    region_name="ap-northeast-1"
)

# アップロード
s3.upload_file("local_file.txt", "my-bucket", "remote/path/file.txt")

# ダウンロード
s3.download_file("my-bucket", "remote/path/file.txt", "downloaded.txt")

# バケット内のファイル一覧
response = s3.list_objects_v2(Bucket="my-bucket")
for obj in response.get("Contents", []):
    print(obj["Key"], obj["Size"])
📋
pyperclip
クリップボードコピー・ペースト初心者向け

クリップボードへのテキストコピー・取得をクロスプラットフォームで行うライブラリ。パスワード生成ツール・テキスト整形ツール・コード補助ツールなど、「ワンクリックでコピー」機能を簡単に実装できます。

pip install pyperclip
import pyperclip

# クリップボードにコピー
pyperclip.copy("コピーしたいテキスト")

# クリップボードから取得
text = pyperclip.paste()
print(text)

# 実用例:パスワードをクリップボードにコピー
import random, string
password = "".join(
    random.choices(string.ascii_letters + string.digits, k=16)
)
pyperclip.copy(password)
print("パスワードをクリップボードにコピーしました")
🔐
cryptography
暗号化セキュリティ中級〜

AES・RSA・Fernet などの暗号化アルゴリズムをPythonで扱えるライブラリ。パスワードの安全なハッシュ化(Argon2id・Scrypt・PBKDF2)・データの暗号化・TLS証明書操作などセキュリティ関連機能が充実。パスワードマネージャーや機密データ管理ツールで使われます。

pip install cryptography
from cryptography.fernet import Fernet

# 鍵の生成(安全な場所に保存すること)
key = Fernet.generate_key()
f = Fernet(key)

# 暗号化
message = b"秘密のメッセージ"
encrypted = f.encrypt(message)
print(encrypted)   # 暗号化されたバイト列

# 復号
decrypted = f.decrypt(encrypted)
print(decrypted.decode())   # 秘密のメッセージ
🔊
pyttsx3
音声合成TTS初心者向け

テキストを音声に変換するTTS(Text-to-Speech)ライブラリ。インターネット接続不要でオフライン動作し、Windows・Mac・Linuxのシステム音声を使います。読み上げアプリ・アクセシビリティ機能・通知音声など幅広い用途があります。

pip install pyttsx3
import pyttsx3

engine = pyttsx3.init()

# 基本の読み上げ
engine.say("こんにちは、PythonLandへようこそ!")
engine.runAndWait()

# 音声設定
engine.setProperty("rate", 150)     # 速度(デフォルト200)
engine.setProperty("volume", 0.9)   # 音量(0.0〜1.0)

# 利用可能な音声一覧
for voice in engine.getProperty("voices"):
    print(voice.id, voice.name)

engine.say("速度を変えました")
engine.runAndWait()
📊
psutil
システム情報プロセスモニタリング

CPU・メモリ・ディスク・ネットワーク・プロセスのシステム情報を取得するライブラリ。タスクマネージャーのようなシステム監視ツール・リソース使用量の記録・自動化スクリプトでの負荷監視などに使います。

pip install psutil
import psutil

# CPU情報
print(f"CPU使用率: {psutil.cpu_percent(interval=1)}%")
print(f"CPUコア数: {psutil.cpu_count()}")

# メモリ情報
mem = psutil.virtual_memory()
print(f"メモリ使用率: {mem.percent}%")
print(f"使用中: {mem.used / 1024**3:.1f} GB")

# ディスク情報
disk = psutil.disk_usage("/")
print(f"ディスク使用率: {disk.percent}%")

# プロセス一覧
for proc in psutil.process_iter(["pid", "name", "cpu_percent"]):
    print(proc.info)

外部ライブラリ一覧・早見表(50件)

本記事で紹介した50件を1枚にまとめました。難易度は★の数(★☆☆=入門、★★★=中〜上級の知識が必要)を目安にしています。公式配布ページのリンク先はPyPI(Python公式のパッケージ配布サイト)で、最新バージョン・対応するPythonのバージョン・公式ドキュメントへのリンクを確認できます。導入前にここで更新が続いているかを見ておくと、選定の失敗が減ります。

ライブラリ主な用途難易度pip コマンド公式配布ページ
requestsHTTP通信・APIリクエスト★☆☆pip install requestsPyPI ↗
httpx非同期HTTP通信★★☆pip install httpxPyPI ↗
BeautifulSoup4HTML解析・スクレイピング★☆☆pip install beautifulsoup4PyPI ↗
Flask軽量Webフレームワーク★★☆pip install flaskPyPI ↗
FastAPI高速Web API開発★★★pip install fastapi uvicornPyPI ↗
NumPy数値計算・行列演算★★☆pip install numpyPyPI ↗
pandasデータ分析・CSV/Excel操作★★☆pip install pandasPyPI ↗
Matplotlibグラフ・データ可視化★★☆pip install matplotlibPyPI ↗
SQLAlchemyDB操作(ORM)★★★pip install sqlalchemyPyPI ↗
python-dotenv環境変数管理★☆☆pip install python-dotenvPyPI ↗
Pillow画像処理・変換★☆☆pip install pillowPyPI ↗
OpenCVコンピュータビジョン★★★pip install opencv-pythonPyPI ↗
qrcodeQRコード生成★☆☆pip install qrcodePyPI ↗
scikit-learn機械学習★★★pip install scikit-learnPyPI ↗
PyTorch深層学習★★★pip install torchPyPI ↗
openaiChatGPT・OpenAI API★★☆pip install openaiPyPI ↗
Seleniumブラウザ自動操作★★☆pip install seleniumPyPI ↗
PyAutoGUIGUI・マウス自動操作★★☆pip install pyautoguiPyPI ↗
schedule定期タスク実行★☆☆pip install schedulePyPI ↗
tqdmプログレスバー表示★☆☆pip install tqdmPyPI ↗
openpyxlExcel操作・自動化★☆☆pip install openpyxlPyPI ↗
Pydanticデータ検証・型安全★★☆pip install pydanticPyPI ↗
pytestテストフレームワーク★★☆pip install pytestPyPI ↗
Rich美しいターミナル出力★☆☆pip install richPyPI ↗
ClickCLIツール作成★★☆pip install clickPyPI ↗
Loguruロギング★☆☆pip install loguruPyPI ↗
PyInstallerexe化・配布★★☆pip install pyinstallerPyPI ↗
ParamikoSSH・SFTP通信★★★pip install paramikoPyPI ↗
pyperclipクリップボード操作★☆☆pip install pyperclipPyPI ↗
cryptography暗号化・セキュリティ★★★pip install cryptographyPyPI ↗
pyttsx3音声合成(TTS)★☆☆pip install pyttsx3PyPI ↗
psutilシステム情報取得★☆☆pip install psutilPyPI ↗
DjangoフルスタックWebフレームワーク★★★pip install djangoPyPI ↗
Playwrightモダンブラウザ自動化・E2Eテスト★★☆pip install playwrightPyPI ↗
Seaborn統計グラフ可視化★☆☆pip install seabornPyPI ↗
Polars高速DataFrame(pandas代替)★★☆pip install polarsPyPI ↗
Plotlyインタラクティブグラフ★★☆pip install plotlyPyPI ↗
MoviePy動画編集・GIF生成★★☆pip install moviepyPyPI ↗
pytesseractOCR(画像から文字認識)★★☆pip install pytesseractPyPI ↗
transformersLLM・自然言語処理(HuggingFace)★★★pip install transformersPyPI ↗
anthropicClaude AI API★★☆pip install anthropicPyPI ↗
yagmailGmailメール送信★☆☆pip install yagmailPyPI ↗
python-docxWord文書の作成・編集★☆☆pip install python-docxPyPI ↗
fpdf2PDF生成・帳票★★☆pip install fpdf2PyPI ↗
Arrow日時操作・タイムゾーン★☆☆pip install arrowPyPI ↗
watchdogファイル・ディレクトリ監視★★☆pip install watchdogPyPI ↗
Typer型ヒントでCLIツール作成★★☆pip install typerPyPI ↗
mypy静的型チェック★★☆pip install mypyPyPI ↗
Blackコード自動フォーマット★☆☆pip install blackPyPI ↗
boto3AWS SDK(S3・Lambda等)★★★pip install boto3PyPI ↗

失敗しないライブラリの選び方

PyPI(Pythonの公式パッケージリポジトリ)には数十万ものライブラリが公開されており、「同じ用途で似たものが複数ある」のは珍しくありません。学習やツール作成で外部ライブラリを選ぶときは、次の5点を確認すると失敗が減ります。

  1. 1
    まず標準ライブラリで足りないか確認する。日付・JSON・正規表現・簡単なファイル操作なら標準で十分なことが多いです。依存を増やさないほどトラブルも減ります。
  2. 2
    メンテナンスされているか。最終リリース日やGitHubの更新状況を見て、長く放置されていないかを確認します。更新が止まったライブラリは新しいPythonで動かなくなることがあります。
  3. 3
    利用者が多く情報が豊富か。ダウンロード数やスター数が多いほど、エラー時に検索で解決策が見つかりやすくなります。学習段階では特に重要です。
  4. 4
    目的に対して重すぎないか。小さな処理に巨大なライブラリを入れると、インストールや起動が遅くなります。用途に見合った軽さかを意識しましょう。
  5. 5
    提供元・ライセンスが信頼できるか。名前が公式そっくりの偽パッケージ(タイポスクワッティング)に注意し、スペルと提供元を確認してからインストールします。
🧭
迷ったら「作りたいもの」から逆算

ライブラリは数を覚えるより、目的から選ぶのが近道です。たとえばデータ集計なら pandas、Web通信なら requests、デスクトップアプリなら標準のtkinter——というように、作りたいアプリに必要な1〜2個から始めましょう。

選ぶ土台になる文法にまだ不安が残るなら、ライブラリ探しより先にPython入門書のおすすめ2冊(当サイトの参考書ランキング総合1〜2位)で基礎を固めるほうが結局は早く進めます。

よくある質問(FAQ)

Q. Pythonのライブラリとは何ですか?

よく使う機能をまとめて再利用できるようにしたコードの集まりです。import で読み込むだけで、HTTP通信・表計算・画像処理などの高度な処理を数行で書けます。Pythonには最初から付属する標準ライブラリと、pipで追加する外部ライブラリがあります。

Q. 標準ライブラリと外部ライブラリの違いは?

標準ライブラリはPythonをインストールした時点で使え、追加インストールが不要です(osjsondatetime など)。外部ライブラリはPyPIで公開され、pip install で別途導入します(pandasrequests など)。標準で足りる処理は標準を使い、専門的な処理は外部を使い分けるのが基本です。

Q. ライブラリ・モジュール・パッケージの違いは?

モジュールは関数やクラスをまとめた1つの .py ファイル、パッケージは複数のモジュールをまとめたフォルダ、ライブラリはそれらを含む再利用可能なコードの総称です。実用上は「import して使う便利な部品」と捉えれば十分です。

Q. ライブラリはどうやってインストールしますか?

外部ライブラリはターミナルで pip install ライブラリ名 を実行します(例: pip install pandas)。プロジェクトごとにバージョンを分けたい場合は仮想環境(venv)の中でインストールするのが推奨です。標準ライブラリはインストール不要でそのまま import できます。

Q. 自分のPCに入っているライブラリの一覧を確認するには?

ターミナル(コマンドプロンプト)で python -m pip list を実行すると、インストール済みパッケージの名前とバージョンが一覧表示されます。requirements.txt に使う固定形式が欲しいときは python -m pip freeze、特定の1つの詳細(保存場所・依存関係)を見たいときは python -m pip show パッケージ名 を使います。標準ライブラリ側の名前一覧は、Python 3.10以降なら sys.stdlib_module_names で取得できます。手順は環境に入っているライブラリの確認方法で解説しています。

Q. pip list と pip freeze の違いは?

表示される情報はほぼ同じで、形式と用途が違います。pip list は見出し付きの表で人が読む向き、--outdated のような確認用オプションも使えます。pip freeze は「名前==バージョン」だけの羅列で、python -m pip freeze > requirements.txt のようにファイルへ保存し、別の環境で同じ構成を再現する用途に使います。pip自身など一部のパッケージは freeze の既定の出力から除かれます。

Q. 最初に覚えるべきライブラリは?

目的によりますが、データを扱うなら pandas、Web通信なら requests、グラフ表示なら Matplotlib、GUIアプリなら標準の tkinter が入口に向いています。まずは作りたいものに必要な1〜2個に絞り、手を動かしながら覚えるのが最短です。

Q. pip install がエラーになるときは?

pipが古い場合は python -m pip install --upgrade pip で更新し、権限エラーなら仮想環境内で実行します。ライブラリ名のスペルやPythonのバージョン対応も確認しましょう。代表的なエラーと対処法はよくあるエラー解決ページで解説しています。

🚀
ライブラリを実際に使ってみよう

ライブラリの知識を実践で活かすなら、サンプルアプリを作るのが最速の習得法です。

📖
ライブラリを「ちゃんと」使えるようになる書籍

pandas・Django・深層学習などを体系的に学ぶなら、Python書籍のおすすめ9冊(比較表つき)の専門書(データ分析入門 第3版/ゼロから作るDeep Learning 等)がおすすめ。機械学習をローカルで回したい方はGPU搭載PCの選び方もどうぞ。

📝
基礎を固める・手を動かして練習する

ライブラリを使う前に文法の土台を固めるなら 関数の使い方Python文法の一覧・基本構文チートシート。実際に手を動かすなら Python練習アプリ・お題集、エラーで詰まったら よくあるエラー逆引き をどうぞ。

次に何を作るか迷ったら Pythonで何が作れる?Python学習の次のステップ、作品づくりのネタ探しには ポートフォリオのアイデア集 が参考になります。

※ 本記事に記載の会社名・製品名・サービス名・ライブラリ名は、各社の商標または登録商標です。本記事は各ライブラリの提供元とは無関係の第三者による解説であり、仕様やモデル名などの最新情報は各公式ドキュメントをご確認ください。