統計ロードマップ
Programming

プログラミング入門ミニ教科書

AI エンジニア・データサイエンティストに必要な Python(基礎・NumPy・Pandas)SQL を 4 章でまとめた実装ミニ教科書。サンプルコードはすべて ブラウザ内で実行可能(Pyodide)で、書き換えても動きます。

※ 初回は Pyodide(~10MB)を CDN から読み込みます。読込後は爆速で実行できます。SQL は標準ライブラリ sqlite3 経由で実行。

Chapter 1

Python 基礎 ─ データ型・関数・制御構造

Python は 読みやすさライブラリの豊富さ が武器の汎用言語。AI / データ分析の事実上の標準語です。本章はゼロからの基礎を最短で押さえます。下のコードはすべて このページで実行できます(▶ 実行ボタン)。

1-1. 変数とデータ型

基本のデータ型
初回のみ Pyodide(~10MB)を CDN から読み込みます

1-2. 関数と制御構造

関数定義 + for / if
初回のみ Pyodide(~10MB)を CDN から読み込みます
💡 リスト内包表記

for ループより簡潔に書ける Python の代表的な記法。`[grade(s) for s in scores]` で 1 行。慣れると読み書きが圧倒的に速くなる。

リスト内包表記
初回のみ Pyodide(~10MB)を CDN から読み込みます
Chapter 2

NumPy ─ ベクトル演算で 100 倍速くする

NumPy は数値計算の核。ピュア Python の for ループで書くと遅い処理を、ベクトル演算(配列まるごとの計算)で C レベルの速度に。統計・機械学習・画像処理の基盤です。

2-1. 配列の作成と演算

ベクトル演算の威力
初回のみ Pyodide(~10MB)を CDN から読み込みます

2-2. 統計関数

正規分布から 1000 サンプル
初回のみ Pyodide(~10MB)を CDN から読み込みます
🛠 ブロードキャスト

形が違う配列同士の演算を自動で揃えてくれる NumPy の魔法。`X - X.mean(axis=0)` で各列の平均を全行から引く ── ML の前処理(センタリング)が 1 行に。

Chapter 3

Pandas ─ 表データ処理のデファクト

Pandas は Excel の DataFrame をプログラマブルにしたもの。SQL の JOIN / GROUP BY 相当の操作も流暢に書けます。データ分析の 80% は Pandas でこなせます。

3-1. DataFrame の作成

DataFrame の基本操作
初回のみ Pyodide(~10MB)を CDN から読み込みます

3-2. フィルタ・ソート・集計

GROUP BY 相当の集計
初回のみ Pyodide(~10MB)を CDN から読み込みます
💡 SQL ↔ Pandas 対応表

SELECT → df[cols] / WHERE → df.query() / GROUP BY → df.groupby() / JOIN → df.merge() / ORDER BY → df.sort_values()。SQL 経験者なら 1 日で身につく。

Chapter 4

SQL ─ データを問い合わせる共通言語

SQL(Structured Query Language)はリレーショナルデータベースに対する問い合わせ言語。データサイエンティストの必修スキルで、求人で最も問われるテーマでもあります。

4-1. SELECT・WHERE・ORDER BY

基本のクエリ
-- ※ これは SQL です(参考表示)。下のセクションで Python から SQLite を呼び出して動かせます

-- 全件取得
SELECT * FROM employees;

-- フィルタ + 並び替え
SELECT name, salary
FROM employees
WHERE dept = '開発'
ORDER BY salary DESC
LIMIT 10;

4-2. GROUP BY と集約関数

部署別の集計
SELECT
    dept,
    COUNT(*) AS n,
    AVG(salary) AS avg_salary,
    MAX(salary) AS max_salary
FROM employees
GROUP BY dept
HAVING COUNT(*) >= 3
ORDER BY avg_salary DESC;

4-3. JOIN

INNER JOIN
SELECT
    e.name,
    d.dept_name,
    e.salary
FROM employees e
INNER JOIN departments d ON e.dept_id = d.id
WHERE d.location = 'Tokyo';

4-4. ウィンドウ関数 ─ DS 必須

部署内ランク
-- 部署ごとの年収ランク TOP 3
SELECT name, dept, salary,
       RANK() OVER (PARTITION BY dept ORDER BY salary DESC) AS rk
FROM employees
QUALIFY rk <= 3;

4-5. Python(SQLite)で SQL を動かす

Python 標準の `sqlite3` モジュールでブラウザ内 SQLite を起動。実際に SELECT を打って結果を確認できます。

Python から SQL を実行
初回のみ Pyodide(~10MB)を CDN から読み込みます
🛠 学習の最短ルート

SELECT → WHERE → JOIN → GROUP BY → ウィンドウ関数 の順。最初の 4 つで日常分析の 80%、ウィンドウ関数まで使えると DS 上級。練習は LeetCode/SQLZoo/StrataScratch がおすすめ。

次に進む

  • [SQL 中級 ─ ML エンジニアが書く 7 つの定石](/blog/sql-intermediate-for-data)
  • [Pandas 実務 Tips 10 選](/blog/pandas-tips-for-ml)
  • [Python 環境構築 完全ガイド](/blog/python-setup-for-stats)
  • [scikit-learn 入門](/blog/sklearn-introduction) ─ 機械学習へ
Chapter 5

scikit-learn ─ 30 分で機械学習デビュー

scikit-learn は Python 機械学習のデファクト。`fit() / predict()` の統一インターフェースで、100 種類以上のモデルが同じ書き方で動きます。下のコードはすべて このページで実行可能(Pyodide)。

5-1. データを読み込む

iris データセット
初回のみ Pyodide(~10MB)を CDN から読み込みます

5-2. 学習 → 予測 → 評価

ロジスティック回帰で 3 クラス分類
初回のみ Pyodide(~10MB)を CDN から読み込みます
💡 fit / transform / predict の原則

scaler や model は 訓練データだけで fit。テストデータには transform / predict のみ。これを守らないとデータリークで評価が水増しされる。

5-3. 交差検証 + ハイパラ最適化

Pipeline + GridSearchCV
初回のみ Pyodide(~10MB)を CDN から読み込みます

5-4. 教師なし学習(クラスタリング)

K-Means で 3 クラスタに分ける
初回のみ Pyodide(~10MB)を CDN から読み込みます
🛠 実務で次に学ぶこと

RandomForest / GradientBoosting / XGBoost は表データの定番。HuggingFace は NLP・画像・音声の事前学習済みモデル。本格的な深層学習は PyTorch / TensorFlow。共通言語の scikit-learn を抑えると応用が早い。

次に進む

  • [scikit-learn 入門ブログ](/blog/sklearn-introduction) ─ 7 ステップ詳細版
  • [Kaggle 始め方](/blog/kaggle-getting-started) ─ コンペで腕試し
  • [E 資格 教科書](/certs/e-shikaku/textbook) ─ DL 本格実装へ
  • [ベイズ最適化(Optuna)](/blog/bayesian-optimization) ─ ハイパラ自動探索
Next

次のステップ