プログラミング入門ミニ教科書
AI エンジニア・データサイエンティストに必要な Python(基礎・NumPy・Pandas) と SQL を 4 章でまとめた実装ミニ教科書。サンプルコードはすべて ブラウザ内で実行可能(Pyodide)で、書き換えても動きます。
※ 初回は Pyodide(~10MB)を CDN から読み込みます。読込後は爆速で実行できます。SQL は標準ライブラリ sqlite3 経由で実行。
Python 基礎 ─ データ型・関数・制御構造
Python は 読みやすさ と ライブラリの豊富さ が武器の汎用言語。AI / データ分析の事実上の標準語です。本章はゼロからの基礎を最短で押さえます。下のコードはすべて このページで実行できます(▶ 実行ボタン)。
1-1. 変数とデータ型
1-2. 関数と制御構造
for ループより簡潔に書ける Python の代表的な記法。`[grade(s) for s in scores]` で 1 行。慣れると読み書きが圧倒的に速くなる。
NumPy ─ ベクトル演算で 100 倍速くする
NumPy は数値計算の核。ピュア Python の for ループで書くと遅い処理を、ベクトル演算(配列まるごとの計算)で C レベルの速度に。統計・機械学習・画像処理の基盤です。
2-1. 配列の作成と演算
2-2. 統計関数
形が違う配列同士の演算を自動で揃えてくれる NumPy の魔法。`X - X.mean(axis=0)` で各列の平均を全行から引く ── ML の前処理(センタリング)が 1 行に。
Pandas ─ 表データ処理のデファクト
Pandas は Excel の DataFrame をプログラマブルにしたもの。SQL の JOIN / GROUP BY 相当の操作も流暢に書けます。データ分析の 80% は Pandas でこなせます。
3-1. DataFrame の作成
3-2. フィルタ・ソート・集計
SELECT → df[cols] / WHERE → df.query() / GROUP BY → df.groupby() / JOIN → df.merge() / ORDER BY → df.sort_values()。SQL 経験者なら 1 日で身につく。
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
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 を打って結果を確認できます。
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) ─ 機械学習へ
scikit-learn ─ 30 分で機械学習デビュー
scikit-learn は Python 機械学習のデファクト。`fit() / predict()` の統一インターフェースで、100 種類以上のモデルが同じ書き方で動きます。下のコードはすべて このページで実行可能(Pyodide)。
5-1. データを読み込む
5-2. 学習 → 予測 → 評価
scaler や model は 訓練データだけで fit。テストデータには transform / predict のみ。これを守らないとデータリークで評価が水増しされる。
5-3. 交差検証 + ハイパラ最適化
5-4. 教師なし学習(クラスタリング)
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) ─ ハイパラ自動探索