本文へスキップ
統計ロードマップ
Programming

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

AI エンジニア・データサイエンティストに必要な Python(基礎・NumPy・Pandas)SQLscikit-learnR 言語データ可視化(matplotlib/seaborn)PyTorchGit / GitHub を 10 章でまとめた実装ミニ教科書。Python のサンプルはすべて ブラウザ内で実行可能(Pyodide)で、書き換えても動きます。

※ 初回は Pyodide(~10MB)を CDN から読み込みます。読込後は爆速で実行できます。SQL は標準ライブラリ sqlite3 経由で実行。R / PyTorch のコードは参考表示(ブラウザ内実行は対象外)。

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) ─ ハイパラ自動探索
Chapter 6

R 言語入門 ─ 統計分野で根強い『分析方言』

R 言語 は統計学者と研究者のために生まれた言語で、統計検定・学術研究・薬学・社会調査の現場で今も第一選択。Python とは生態系が違いますが、統計の概念をそのままコードにできる素直さが魅力です。

6-1. R の基本データ構造

ベクトル・データフレーム・基本統計
# ベクトル(R では『1 次元配列』が基本単位)
scores <- c(85, 92, 78, 90, 67)
mean(scores)        # [1] 82.4
sd(scores)          # [1] 10.59
summary(scores)

# データフレーム
df <- data.frame(
  name = c('Alice', 'Bob', 'Carol'),
  score = c(85, 92, 78)
)
print(df)

# 統計関数は最初から豊富(import 不要)
var(scores)
median(scores)
quantile(scores, c(0.25, 0.5, 0.75))
💡 R は 1 から始まる

Python は `list[0]` から始まるが、R は `vec[1]` から。1-indexed は数学的記法と整合的(統計教科書の式と一致)で、研究者にとってはむしろ自然。混乱したら『R は数式に近い』と覚えるのがコツ。

6-2. dplyr ─ tidyverse のデータ操作

パイプ演算子 %>% と dplyr
library(dplyr)

df <- data.frame(
  dept = c('営業', '開発', '営業', '開発', '営業'),
  salary = c(500, 700, 550, 800, 480),
  years = c(3, 5, 4, 8, 2)
)

# パイプ演算子で読みやすく
df %>%
  filter(salary >= 500) %>%
  group_by(dept) %>%
  summarise(
    n = n(),
    avg_salary = mean(salary),
    avg_years = mean(years)
  ) %>%
  arrange(desc(avg_salary))

# Pandas の groupby 相当だが、より宣言的に書ける

6-3. 統計検定の R 実装

t 検定・ANOVA・カイ二乗 ─ ワンライナーで実行
# 1 標本 t 検定
x <- c(102, 105, 98, 100, 103, 99, 104, 101)
t.test(x, mu = 100)        # 帰無仮説 μ=100 を検定

# 2 標本 t 検定(Welch、デフォルト)
a <- c(72, 75, 68, 80, 79)
b <- c(85, 88, 82, 90, 87)
t.test(a, b)

# 一元配置 ANOVA
data <- data.frame(
  group = rep(c('A', 'B', 'C'), each = 5),
  value = c(85, 87, 80, 82, 86,  72, 78, 75, 80, 76,  90, 92, 88, 95, 91)
)
aov_result <- aov(value ~ group, data = data)
summary(aov_result)

# カイ二乗適合度検定
observed <- c(8, 13, 9, 11, 7, 12)  # サイコロ 60 回
chisq.test(observed)

# 母比率の検定
prop.test(x = 72, n = 200, p = 0.30)
🛠 R の真価は『学術論文の付録』

学術論文の補足資料(Appendix)は、いまだに R コードがデファクト。lme4(混合効果モデル)・survival(生存解析)・brms(ベイズ階層モデル)など、Python に同等品が育っていない領域は多い。統計検定 1 級・準 1 級でも R の出力を読める力が問われます。

6-4. 線形回帰 ─ R は 1 行

lm() で多変量回帰
# サンプルデータ
set.seed(42)
n <- 100
x1 <- rnorm(n)
x2 <- rnorm(n)
y <- 2 + 1.5 * x1 - 0.7 * x2 + rnorm(n, sd = 0.5)

df <- data.frame(y = y, x1 = x1, x2 = x2)

# 重回帰
model <- lm(y ~ x1 + x2, data = df)
summary(model)
# 推定値・標準誤差・t 値・p 値・R² まで一発表示

# 残差プロットで診断
par(mfrow = c(2, 2))
plot(model)
# 4 つの診断図(残差 vs fitted / Q-Q / scale-location / leverage)を自動生成
💡 R vs Python ─ 使い分け

R: 統計検定・学術研究・公的統計・GLM/混合効果モデル・生存解析・結果の図表が美しい(ggplot2) Python: 機械学習・深層学習・本番システム・Web 連携・汎用言語としての強さ 両方使えると最強。pandas は dplyr の影響を受けて設計されており、考え方は近い。

6-5. ggplot2 で美しい可視化

Grammar of Graphics の哲学
library(ggplot2)

# iris データセット(R 標準搭載)
ggplot(iris, aes(x = Sepal.Length, y = Petal.Length, color = Species)) +
  geom_point(size = 3, alpha = 0.7) +
  geom_smooth(method = 'lm', se = TRUE) +
  labs(
    title = 'アヤメの花弁の長さ vs がく片の長さ',
    x = 'がく片の長さ (cm)',
    y = '花弁の長さ (cm)'
  ) +
  theme_minimal()

# データ → 美的属性(aesthetics) → 幾何要素(geom) → 統計変換 → 座標系 → ファセット
# という階層的な文法でグラフを構築する Grammar of Graphics の発想

次に進む

  • R Markdown / Quarto: 分析レポートを再現可能な形で書ける
  • Shiny: R で書ける Web アプリフレームワーク。ダッシュボードに
  • brms / rstan: ベイズ階層モデル(準 1 級〜1 級レベル)
  • [統計検定 1 級教科書](/textbook/grade-1) ─ R の出力読解が出る
Chapter 7

データ可視化 ─ matplotlib・seaborn・plotly

データ分析の最後のステップ ─ 可視化 は、洞察を共有するための言語。Python では matplotlib(基本)・seaborn(統計グラフ)・plotly(対話的)の 3 ライブラリが定番です。

7-1. matplotlib ─ すべての可視化の基礎

基本のプロット ─ 折れ線・散布図・ヒストグラム
初回のみ Pyodide(~10MB)を CDN から読み込みます
💡 matplotlib の Figure / Axes 構造

Figure = キャンバス全体、Axes = 1 つのグラフ領域。`fig, ax = plt.subplots()` で両方取得し、`ax.plot()` でグラフを描く ─ これがオブジェクト指向 API。慣れると複数グラフの細かい制御が思いどおりに。

7-2. seaborn ─ 統計グラフの高速化

DataFrame をそのまま渡せる
初回のみ Pyodide(~10MB)を CDN から読み込みます
🛠 seaborn のヒートマップは強力

相関行列ヒートマップ(`sns.heatmap(df.corr(), annot=True, cmap='coolwarm')`)は探索的分析の定番。多重共線性のチェックでまず描く。pairplot は全変数ペアの散布図とヒストグラムを一発で。

7-3. plotly ─ 対話的グラフ

plotly で対話的散布図(参考表示)
# plotly は pyodide にデフォルト同梱されないため参考表示
import plotly.express as px
import pandas as pd

df = px.data.iris()  # plotly 内蔵のサンプル

fig = px.scatter(
    df, x='sepal_length', y='petal_length',
    color='species', size='petal_width',
    hover_data=['species'],
    title='アヤメの散布図(対話的)'
)
fig.show()

# 特長:
# - ホバーで値表示・ズーム・パン
# - HTML/PNG/PDF 出力
# - JavaScript 不要(Python だけで対話的グラフが書ける)

7-4. 統計図解の使い分け

  • 1 変数の分布: ヒストグラム / KDE / boxplot / violinplot
  • 2 変数の関係: 散布図 / 回帰直線 + 信頼帯 / 6角ビン(hexbin)
  • カテゴリ別の比較: barplot(平均 + エラーバー)/ boxplot / strip+swarm
  • 相関構造: 相関行列ヒートマップ / pairplot
  • 時系列: 折れ線(複数系列のとき alpha+legend で読みやすく)
  • 地図: choropleth(plotly express で簡単)
  • 多次元: PCA → 2D 散布図、t-SNE / UMAP は可視化専用
💡 良いグラフの 5 原則

①データ:インクの比率を高く(余計な装飾を減らす — Edward Tufte) ②色は意味に対応(警告は赤・連続値は単色グラデ・順序のないカテゴリは ColorBrewer) ③軸の起点とスケール(棒グラフは 0 起点) ④凡例は近く・短く(直接ラベリング推奨) ⑤色覚多様性に配慮(viridis / cividis / ColorBrewer)

次に進む

  • [Tableau / Power BI](/blog/bi-tools-comparison) ─ BI ツールでダッシュボード
  • [Streamlit](/blog/streamlit-introduction) ─ Python だけで Web アプリ
  • D3.js: ブラウザ JavaScript で完全カスタムの可視化
  • [統計図解集](/figures) ─ 概念理解のための SVG 図解
Chapter 8

PyTorch 入門 ─ 深層学習を 50 行で動かす

PyTorch は Meta(旧 Facebook)発の深層学習フレームワーク。動的計算グラフ + Pythonic API で研究者・実務家の両方に支持され、Hugging Face / Stable Diffusion / Llama すべての裏側で動いています。E 資格・データサイエンティスト中級 で必須のスキル。

8-1. テンソルの基本

PyTorch のテンソル ─ NumPy + 自動微分 + GPU
# PyTorch は pyodide にデフォルト同梱されないため参考表示
import torch

# テンソル(NumPy 配列に GPU + 自動微分の機能を追加)
x = torch.tensor([1.0, 2.0, 3.0], requires_grad=True)
y = (x ** 2).sum()

print(f'x: {x}')
print(f'y = sum(x^2) = {y.item()}')

# 自動微分: dy/dx = 2x
y.backward()
print(f'dy/dx: {x.grad}')  # tensor([2., 4., 6.])

# GPU 利用(CUDA が使える環境では)
if torch.cuda.is_available():
    x_gpu = x.cuda()
    print(f'on GPU: {x_gpu.device}')
💡 自動微分が深層学習を成立させる

ニューラルネットの学習 = 損失関数を重みで微分してパラメータを更新(勾配降下法)。手で微分式を書くのは現代規模(数億パラメータ)では不可能。PyTorch の `loss.backward()` は 計算グラフを逆向きに辿って連鎖律を自動適用。これがなければ深層学習は実現できなかった、というほど重要な仕組みです。

8-2. 線形回帰を PyTorch で書く

勾配降下法でゼロから線形回帰
import torch
import torch.nn as nn
import torch.optim as optim

# 偽データ: y = 2x + 1 + ノイズ
torch.manual_seed(0)
x = torch.linspace(-3, 3, 100).unsqueeze(1)
y = 2 * x + 1 + torch.randn_like(x) * 0.5

# モデル定義(1 層の線形変換)
model = nn.Linear(in_features=1, out_features=1)

# 損失関数とオプティマイザ
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.05)

# 学習ループ
for epoch in range(200):
    y_pred = model(x)              # 順伝播
    loss = criterion(y_pred, y)    # 損失計算
    optimizer.zero_grad()          # 勾配クリア
    loss.backward()                # 逆伝播
    optimizer.step()               # パラメータ更新

    if (epoch + 1) % 50 == 0:
        w, b = model.weight.item(), model.bias.item()
        print(f'Epoch {epoch+1:3d}: loss={loss.item():.4f}, w={w:.3f}, b={b:.3f}')

# 最終的に w ≈ 2, b ≈ 1 に収束する

8-3. ニューラルネットによる分類

MLP で iris の 3 クラス分類
import torch
import torch.nn as nn
import torch.optim as optim
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

X, y = load_iris(return_X_y=True)
X_tr, X_te, y_tr, y_te = train_test_split(X, y, test_size=0.2, random_state=0, stratify=y)
X_tr = StandardScaler().fit_transform(X_tr)
X_te = StandardScaler().fit_transform(X_te)

# Tensor に変換
X_tr_t = torch.tensor(X_tr, dtype=torch.float32)
y_tr_t = torch.tensor(y_tr, dtype=torch.long)
X_te_t = torch.tensor(X_te, dtype=torch.float32)

# 多層パーセプトロン(MLP)
class MLP(nn.Module):
    def __init__(self):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(4, 16),
            nn.ReLU(),
            nn.Linear(16, 8),
            nn.ReLU(),
            nn.Linear(8, 3),  # 3 クラスのロジット
        )

    def forward(self, x):
        return self.net(x)

model = MLP()
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.01)

for epoch in range(200):
    optimizer.zero_grad()
    logits = model(X_tr_t)
    loss = criterion(logits, y_tr_t)
    loss.backward()
    optimizer.step()
    if (epoch + 1) % 50 == 0:
        acc = (logits.argmax(1) == y_tr_t).float().mean()
        print(f'Epoch {epoch+1}: loss={loss:.4f}, train_acc={acc:.3f}')

# テスト評価
model.eval()
with torch.no_grad():
    pred = model(X_te_t).argmax(1).numpy()
print(f'\nTest accuracy: {(pred == y_te).mean():.3f}')

8-4. PyTorch の主要構成要素

  • `torch.Tensor`: NumPy 配列 + GPU + 自動微分
  • `nn.Module`: モデルの基底クラス。`forward()` を実装
  • `nn.Sequential`: 層を順に積むだけのコンテナ
  • Loss: `nn.MSELoss`(回帰)/ `nn.CrossEntropyLoss`(分類)
  • Optimizer: `optim.SGD` / `optim.Adam`(現代の標準)
  • `DataLoader`: ミニバッチを供給するイテレータ
  • `backward()` / `optimizer.step()`: 学習の心臓部
💡 PyTorch の学習ループは 5 行

①順伝播 `pred = model(x)` → ②損失 `loss = criterion(pred, y)` → ③勾配ゼロ化 `opt.zero_grad()` → ④逆伝播 `loss.backward()` → ⑤更新 `opt.step()`。これが PyTorch の本体。あとはモデルを大きくしたりデータを増やすだけで、Llama も Stable Diffusion もこの 5 行で動いています。

8-5. Hugging Face で事前学習モデルを使う

transformers ライブラリ ─ BERT で感情分析
# Hugging Face は事前学習済みモデルのハブ
from transformers import pipeline

# 感情分析(英語、最初の実行時にモデルをダウンロード)
classifier = pipeline('sentiment-analysis')

results = classifier([
    'I love this product!',
    'This is the worst experience.',
    'It works fine, nothing special.'
])

for r in results:
    print(f"label: {r['label']}, score: {r['score']:.3f}")

# 数行で BERT クラスの SOTA モデルが使える
# 日本語: rinna/japanese-roberta-base などを指定すれば OK
# テキスト生成・翻訳・要約・QA すべて pipeline() の引数で切替可能
🛠 PyTorch を学ぶロードマップ

Lv1: 線形回帰 + MLP を自分で書く(本章の範囲) Lv2: CNN で画像分類(Fashion-MNIST → CIFAR-10) Lv3: RNN/Transformer で系列処理(時系列予測 / 機械翻訳) Lv4: Hugging Face で fine-tuning(LoRA / PEFT) Lv5: 分散学習(DDP / FSDP)で大規模モデル 各 Lv は 1〜2 週間で進める。実務 ML エンジニアは Lv3 まで標準。

結びに ─ 8 章を終えて

Python 基礎 → NumPy → Pandas → SQL → scikit-learn → R → 可視化 → PyTorch、と 8 章を駆け抜けてきました。データを取得し(SQL)・整形し(Pandas)・統計分析し(R / scikit-learn)・モデリングし(PyTorch)・伝える(可視化) ─ データ職の全工程を 1 本の線でつなぐツールキットが揃いました。

  • [E 資格 教科書](/certs/e-shikaku/textbook) ─ 深層学習の理論と実装
  • [G 検定 教科書](/certs/g-test/textbook) ─ AI の社会実装と倫理
  • [統計検定 2 級](/textbook/grade-2) ─ 統計推論の理論
  • [Kaggle 入門ブログ](/blog/kaggle-getting-started) ─ コンペで実践
  • [ロードマップ](/roadmap) ─ AI エンジニアへの全体像
Chapter 9

Git・GitHub・開発環境 ─ プロの DS の前提

Git はバージョン管理の世界標準。GitHub はチーム開発・ポートフォリオ・OSS 参加の事実上のプラットフォーム。データ職でも『Git が使えない人』は卒業して、プロのワークフロー に入りましょう。

9-1. Git の基本コマンド

Git の必須 10 コマンド(参考表示)
# 初期化と設定
git init                       # 新規リポジトリ
git clone <url>                # 既存リポジトリ取得
git config --global user.name 'Your Name'

# 日々のサイクル
git status                     # 現在の状態確認
git add <file>                 # ステージング
git commit -m 'メッセージ'      # コミット
git log --oneline              # 履歴表示

# 共同作業
git push origin main           # リモートに送信
git pull origin main           # リモートから取得
git branch feature/foo         # ブランチ作成
git checkout feature/foo       # ブランチ切替
git merge feature/foo          # ブランチ統合
💡 コミットメッセージは未来の自分への手紙

Conventional Commits スタイル(`feat:`, `fix:`, `docs:` など)が業界標準。1 ヶ月後の自分・チームメンバが読んで理解できるメッセージを書く。1 コミット 1 つの変更 が原則。

9-2. GitHub の機能

  • Pull Request(PR): コードレビューと議論の中心
  • Issue: タスク・バグ・質問のトラッキング
  • Actions: CI/CD・テスト自動化
  • Pages: 静的サイトのホスティング(無料)
  • Codespaces: クラウド開発環境
  • Copilot: AI ペアプログラマー

9-3. データプロジェクトの管理

  • .gitignore: 大容量データ・秘密鍵を除外(`*.csv`, `.env`)
  • Git LFS: 大容量ファイルの専用ストレージ
  • DVC: データのバージョン管理(Data Version Control)
  • MLflow: 実験トラッキング(モデル + ハイパラ + メトリクス)
  • Hydra: 設定管理(yaml ベース)

9-4. 開発環境の選択

  • VS Code: 万能・拡張豊富(Python・Jupyter・GitHub 統合)
  • Cursor: AI 統合エディタ(VS Code フォーク)
  • JupyterLab: 探索的データ分析の標準
  • PyCharm Professional: 重厚長大な Python 開発に
  • RStudio: R 開発の鉄板
  • Google Colab: クラウド GPU を無料で(初学者・ML 学習に最適)

9-5. 仮想環境とパッケージ管理

Python の主要な仮想環境
# venv(標準)
python -m venv .venv
source .venv/bin/activate         # mac/Linux
.venv\Scripts\activate            # Windows
pip install -r requirements.txt

# Conda(科学計算系で人気)
conda create -n myenv python=3.11
conda activate myenv
conda install numpy pandas matplotlib

# Poetry(モダンな依存管理)
poetry init
poetry add pandas scikit-learn
poetry shell

# uv(2024 年登場の最速、Rust 製)
uv venv
uv pip install pandas scikit-learn
🛠 2025 年現在の推奨スタック

初学者: Google Colab(セットアップ不要) 個人開発: VS Code + uv + Git チーム開発: VS Code + uv/Poetry + GitHub + GitHub Actions ML プロジェクト: + MLflow + DVC LLM 開発: + LangChain / Claude Code / Cursor

Chapter 10

総まとめと AI エンジニアへのロードマップ

プログラミング教科書 9 章を歩いてきました。Python・NumPy・Pandas・SQL・scikit-learn・R・可視化・PyTorch・Git ─ 現代のデータ職に必要な道具がすべて揃いました。

10-1. 9 章の地図

  1. Ch1 Python 基礎: 変数・関数・制御構造
  2. Ch2 NumPy: ベクトル演算で 100 倍速く
  3. Ch3 Pandas: 表データ処理のデファクト
  4. Ch4 SQL: データベースの共通語
  5. Ch5 scikit-learn: 機械学習デビュー 30 分
  6. Ch6 R 言語: 統計分野の根強い分析方言
  7. Ch7 データ可視化: matplotlib・seaborn・plotly
  8. Ch8 PyTorch: 深層学習を 50 行で動かす
  9. Ch9 Git・GitHub・開発環境: プロの前提

10-2. AI エンジニアへの 5 段階ロードマップ

  1. Lv1 言語スキル(本書 Ch1-4): Python・SQL を読み書きできる
  2. Lv2 統計と ML(本書 Ch5): scikit-learn でモデルを動かせる
  3. Lv3 深層学習(本書 Ch8): PyTorch で MLP/CNN を実装できる
  4. Lv4 実プロジェクト: Kaggle・自社データで動くものを作る
  5. Lv5 専門化: NLP・CV・推薦・MLOps のいずれかを深掘り

10-3. ポートフォリオの作り方

  • GitHub: 3-5 個の質の高いプロジェクトをピン止め
  • README.md: 各プロジェクトに目的・データ・結果・反省を書く
  • Kaggle: 1 つでもメダル(Bronze 以上)で大きなアピール
  • ブログ: 学んだことを Qiita / Zenn / Note で発信
  • Demo: Streamlit / Gradio で動く Web アプリ
  • OSS 貢献: scikit-learn や pandas へ小さな PR でも価値大

10-4. 学習リソース

  • Andrew Ng の Coursera: ML / DL Specialization の決定版
  • fast.ai: 実践的な深層学習講座(無料)
  • Hugging Face Course: NLP / LLM の最新
  • MIT 6.S191: Introduction to Deep Learning(YouTube)
  • 3Blue1Brown: 数学の直感を養う(YouTube)
  • Towards Data Science: Medium の有力ブログ
  • Kaggle Learn: 無料の実践コース
  • [E 資格 教科書](/certs/e-shikaku/textbook): 本サイトの DL 詳細
  • [統計検定 2 級](/textbook/grade-2): 統計理論の基礎

10-5. プロとして成長し続ける 5 か条

  1. 毎日少しずつ: 1 日 30 分でも継続
  2. 手を動かす: 読むだけでなく必ずコードを書く
  3. 論文を読む: NeurIPS / ICML / ICLR の話題作 1 つ / 月
  4. コミュニティ参加: Twitter・Discord・勉強会
  5. 教える側に回る: 学んだことを記事や発表で共有
💡 AI 時代の DS / AI エンジニア像

AI が単純コーディングを自動化する時代、人間の価値は『何を解くか』『どう解釈するか』『社会にどう還元するか』 という上流の判断にシフトします。コードが書ける + 統計が分かる + ビジネス課題を整理できる ─ この 3 つが揃った T 型人材が、これからの 10 年で最も希少で価値ある存在です。

プログラミング教科書 10 章、お疲れさまでした。コードを通じてデータと対話し、社会の意思決定の質を高める 旅にようこそ。本サイトは、あなたのキャリア全体の伴走者でありたいと願っています。

Next

次のステップ