Cursor AI を Jupyter Notebook で使用する方法 (2026年版)
Cursor を活用した AI 支援型データサイエンスとノートブック開発
Hyperealで構築を始めよう
Kling、Flux、Sora、Veoなどに単一のAPIでアクセス。無料クレジットで開始、数百万規模まで拡張可能。
クレジットカード不要 • 10万人以上の開発者 • エンタープライズ対応
Cursor AI を Jupyter Notebook で使用する方法 (2026年版)
Cursor AI は、現在利用可能な AI 搭載コードエディタの中で最も優れたものの1つですが、Jupyter Notebook への対応は一見しただけでは分かりにくいかもしれません。データサイエンティスト、ML エンジニア、あるいは普段 Notebook を活用しているアナリストの方に向けて、.ipynb ファイルで Cursor の AI 機能を最大限に活用する方法を解説します。
セットアップ、AI 支援による Notebook 開発の最適なワークフロー、そして従来の Jupyter 環境よりも Cursor を格段に高速化させる実用的なヒントを紹介します。
Cursor は Jupyter Notebook をサポートしていますか?
はい。Cursor は VS Code をベースに構築されており、VS Code のネイティブな Jupyter Notebook サポートを継承しています。Cursor で .ipynb ファイルを開くと、インタラクティブなセル、インライン出力、プロット、Markdown セルなど、完全な Notebook 体験に加えて、Cursor のすべての AI 機能を利用できます。
| 機能 | Cursor + Jupyter | JupyterLab | VS Code + Jupyter |
|---|---|---|---|
| インタラクティブ・セル | 対応 | 対応 | 対応 |
| インライン・プロット | 対応 | 対応 | 対応 |
| AI コード生成 | 対応 (Claude/GPT) | 非対応 | 限定的 (Copilot) |
| コンテキスト付き AI チャット | 対応 | 非対応 | 限定的 |
| Agent モード | 対応 | 非対応 | 非対応 |
| 変数インスペクタ | 対応 | 対応 | 対応 |
| カーネル管理 | 対応 | 対応 | 対応 |
| 拡張機能 | VS Code エコシステム | JupyterLab 拡張 | VS Code エコシステム |
JupyterLab に対する Cursor の最大の利点は、コード生成や質問への回答時に、AI が Notebook 全体のコンテキスト(すべてのセル、出力、インポートされたライブラリ)を理解している点にあります。
ステップ 1: Jupyter 用に Cursor をセットアップする
事前準備のインストール
Python と Jupyter がインストールされていることを確認してください。
# Python のインストール (未インストールの場合)
# macOS
brew install python@3.12
# Jupyter と一般的なデータサイエンス・ライブラリのインストール
pip install jupyter ipykernel pandas numpy matplotlib seaborn scikit-learn
Jupyter 拡張機能のインストール
Cursor は VS Code の拡張機能エコシステムを引き継いでいます。Jupyter 拡張機能は通常プリインストールされていますが、以下の手順で確認します。
- Cursor を開きます。
- Extensions (Cmd+Shift+X / Ctrl+Shift+X) へ移動します。
- "Jupyter" を検索し、インストールされていない場合は Microsoft 公式の Jupyter 拡張機能をインストールします。
- 完全な言語サポートのために、Microsoft の "Python" 拡張機能もインストールしてください。
Python カーネルの選択
- Cursor で
.ipynbファイルを開くか作成します。 - Notebook の右上隅にある Select Kernel をクリックします。
- Python Environments を選択し、インストールされている Python または仮想環境を選択します。
# プロジェクト専用の仮想環境を作成する場合
python -m venv .venv
source .venv/bin/activate # macOS/Linux
# .venv\Scripts\activate # Windows
# プロジェクトの依存関係をインストール
pip install jupyter ipykernel pandas numpy matplotlib
# カーネルを登録
python -m ipykernel install --user --name myproject --display-name "My Project"
ステップ 2: Notebook で Cursor AI 機能を使用する
インラインコード生成 (Cmd+K / Ctrl+K)
Notebook のセル内で AI を使用する最も速い方法は、Cursor のインライン生成です。空のセルにカーソルを置き、Cmd+K (macOS) または Ctrl+K (Windows/Linux) を押します。
# Cmd+K を押して入力: "load the titanic dataset and show basic statistics"
# Cursor が生成:
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv')
print(f"Shape: {df.shape}")
print(f"\nColumn types:\n{df.dtypes}")
print(f"\nBasic statistics:\n{df.describe()}")
print(f"\nMissing values:\n{df.isnull().sum()}")
既存のコードを選択して Cmd+K を押し、修正を加えることも可能です。
# このコードを選択して Cmd+K を押す: "add error handling and make it a reusable function"
# 元のコード:
df = pd.read_csv('data.csv')
df = df.dropna()
df['age_group'] = pd.cut(df['age'], bins=[0, 18, 35, 50, 100])
# Cursor による変換後:
def load_and_preprocess(filepath: str, age_bins: list = None) -> pd.DataFrame:
"""CSVデータをロードし、欠損値を処理して、年齢グループを追加する。"""
if age_bins is None:
age_bins = [0, 18, 35, 50, 100]
try:
df = pd.read_csv(filepath)
except FileNotFoundError:
raise FileNotFoundError(f"Data file not found: {filepath}")
initial_rows = len(df)
df = df.dropna()
dropped = initial_rows - len(df)
if dropped > 0:
print(f"Dropped {dropped} rows with missing values ({dropped/initial_rows:.1%})")
df['age_group'] = pd.cut(df['age'], bins=age_bins)
return df
チャットパネル (Cmd+L / Ctrl+L)
Cmd+L でチャットパネルを開き、Notebook について Cursor と対話できます。AI はセルの出力を含む Notebook 全体を参照できます。
データサイエンス・ワークフロー向けのプロンプト例:
- 「セル 3 の出力を見て。なぜ精度がこんなに低いの?」
- 「セル 7 のプロットが見づらいです。可視化を改善して。」
- 「セル 12 のモデルに対して、交差検証を用いたグリッドサーチを行う関数を書いて。」
- 「SettingWithCopyWarning が出ています。修正してください。」
Agent モード (Cmd+I / Ctrl+I)
Agent モードは、Notebook において最も強力な機能です。新しいセルの作成、既存セルの編集、さらには多段階のデータサイエンス・ワークフローの実行が可能です。
プロンプト: "セル 1 でロードしたデータセットに対して完全な EDA を実行してください。
数値カラムの分布プロット、相関ヒートマップ、欠損値分析、および主要な知見の Markdown
サマリーを、それぞれ別のセルで作成してください。"
Agent モードは、適切なコードと Markdown を含む 4〜5 個の新しいセルを自動的に作成します。
ステップ 3: 実用的なワークフロー
ワークフロー 1: 探索的データ解析 (EDA)
手動で EDA のコードを書く代わりに、Cursor を使ってステップバイステップで生成します。
# セル 1: データのロード (ユーザーが記述)
import pandas as pd
df = pd.read_csv('sales_data.csv')
df.head()
次に、チャットパネルで以下のように入力します。
プロンプト: "上記のデータフレームの出力を確認して。続くセルで以下の完全な EDA を生成して:
1. データ型と欠損値のサマリー
2. 数値カラムの分布 (ヒストグラム)
3. 相関行列のヒートマップ
4. カテゴリ変数の値のカウント (上位)
5. 日付カラムがある場合は時系列プロット"
Cursor は、特定のデータフレームのカラムに合わせた適切なコードを含む 5 つのセルを生成します。
ワークフロー 2: エラーのデバッグ
セルでエラーが発生した場合、エラー出力を選択して Cursor に修正を依頼します。
# このセルでエラーが発生: ValueError: could not convert string to float: 'N/A'
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train) # ここでエラー
エラーを選択して Cmd+L を押します。
プロンプト: "このエラーを修正して。トレーニングデータに処理が必要な文字列が含まれています。"
Cursor は、コンテキストを踏まえた修正案を提示します。
# Cursor による修正案:
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import LabelEncoder
import numpy as np
# 非数値データの処理
X_train_clean = X_train.copy()
for col in X_train_clean.select_dtypes(include=['object']).columns:
X_train_clean[col] = X_train_clean[col].replace('N/A', np.nan)
X_train_clean[col] = pd.to_numeric(X_train_clean[col], errors='coerce')
# 残りの NaN 値を埋める
X_train_clean = X_train_clean.fillna(X_train_clean.median())
model = LinearRegression()
model.fit(X_train_clean, y_train)
ワークフロー 3: モデルの反復改善
チャットを使用してモデルのパフォーマンスを改善します。
# セル出力: Accuracy: 0.72, F1: 0.68
プロンプト: "モデルの精度が 0.72 です。これを改善するための 3 つの異なるアプローチを提案し、
実装してください。各アプローチを新しいセルで作成し、最後のサマリーセルで結果を比較してください。"
ワークフロー 4: 可視化のブラッシュアップ
基本的なプロットを作成し、AI で洗練させます。
# 基本的なプロット
df['sales'].plot()
プロンプト: "これを出版クオリティに仕上げて。適切なラベル、タイトル、凡例を追加し、
クリーンなスタイルを使用し、トレンドラインを追加して、ピーク値をアノテーションしてください。"
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import numpy as np
fig, ax = plt.subplots(figsize=(12, 6))
# データのプロット
ax.plot(df.index, df['sales'], color='#2563eb', linewidth=1.5, label='Daily Sales')
# トレンドラインの追加
z = np.polyfit(range(len(df)), df['sales'], 1)
p = np.poly1d(z)
ax.plot(df.index, p(range(len(df))), '--', color='#dc2626', linewidth=1, label='Trend')
# ピークのアノテーション
peak_idx = df['sales'].idxmax()
peak_val = df['sales'].max()
ax.annotate(f'Peak: ${peak_val:,.0f}',
xy=(peak_idx, peak_val),
xytext=(10, 20), textcoords='offset points',
fontsize=10, fontweight='bold',
arrowprops=dict(arrowstyle='->', color='#374151'))
ax.set_title('Daily Sales Performance', fontsize=16, fontweight='bold', pad=15)
ax.set_xlabel('Date', fontsize=12)
ax.set_ylabel('Sales ($)', fontsize=12)
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3)
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
plt.tight_layout()
plt.show()
Notebook で AI の結果を向上させるヒント
1. セルの出力を表示したままにする
Cursor はデータの構造を理解するためにセルの出力を読み取ります。AI に質問する前に必ずセルを実行し、実際のデータの形状、カラム名、エラーメッセージを AI が確認できるようにしてくださいbox。
2. コンテキストとして Markdown セルを活用する
何を行おうとしているかを説明する Markdown セルを追加してください。Cursor はこれらをコンテキストとして利用します。
## 目的
通信事業者のデータセットを使用して顧客離脱(Churn)を予測する。ターゲット変数は 'Churn'。
本番導入のために少なくとも 85% の精度が必要。
3. 特定のセルを参照する
チャットを使用する際は、具体的にセルを指定してください。
- 「セル 5 で、マージによって重複が発生しています。修正して。」
- 「セル 3 のクレンジング済みデータフレームを使用して、ランダムフォレストを訓練して。」
4. 複雑なロジックには `.py` ファイルを使用する
複雑なユーティリティ関数などは、別の .py ファイルを作成してインポートしてください。Cursor の AI は、複雑なコードの記述には標準的な Python ファイルの方が適しており、Notebook は全体のオーケストレーションや可視化に最適です。
# utils/preprocessing.py (Cursor AI はここで非常に威力を発揮します)
def clean_dataset(df):
...
# notebook.ipynb
from utils.preprocessing import clean_dataset
df_clean = clean_dataset(df)
Cursor vs JupyterLab vs Google Colab
| 項目 | Cursor + Jupyter | JupyterLab | Google Colab |
|---|---|---|---|
| AI コード生成 | 非常に優れている | 標準機能なし | Gemini 搭載 |
| オフライン対応 | 対応 | 対応 | 非対応 |
| GPU アクセス | ローカルのみ | ローカルのみ | 無料 GPU あり |
| コラボレーション | Git ベース | JupyterHub | リアルタイム共有 |
| 拡張機能エコシステム | VS Code (膨大) | Jupyter (少なめ) | 限定的 |
| パフォーマンス | 高速 (ローカル) | 高速 (ローカル) | 変動あり (クラウド) |
| コスト | 月額$20 (Pro) or 無料 | 無料 | 無料 + 有料プラン |
よくある質問
Cursor の無料プランで Jupyter Notebook を使えますか? はい。無料の Hobby プランには、月間 50 回の高速なプレミアムリクエストが含まれており、これを Notebook で使用できます。
Cursor は .py パーセント形式の Notebook をサポートしていますか?
はい。Cursor は標準の .ipynb と、# %% セルマーカー(パーセント形式)を使用した .py ファイルの両方をサポートしています。AI 機能は両方の形式で動作します。
Cursor はプロットの出力を読み取れますか? Cursor はテキスト出力やデータフレームの表示内容を認識できます。プロットについては、それを生成したコードを読み取って改善案を出すことはできますが、描画されたプロット画像を視覚的に分析することは(現時点では)できません。
大規模なデータセットについてはどうですか?
Cursor の AI は、データそのものをコンテキストにロードするわけではありません。読み取るのはコードとセルの出力です。大規模なデータセットを扱う場合は、表示出力(df.head() や df.describe() など)を通じて、AI がデータ構造を理解するのに十分な情報を与えるようにしてください。
まとめ
Cursor は、Jupyter Notebook を単なる手動コーディング環境から、AI 支援によるデータサイエンス・ワークフローへと進化させます。インライン生成、Notebook のコンテキストを汲み取ったチャット、そして Agent モードの組み合わせにより、探索的分析、モデル構築、可視化が格段にスピードアップします。
重要なのは、セルの出力を表示させ、Markdown セルで文脈を補足し、AI と対話する際に特定のセルを参照することです。これにより、Cursor は正確でコンテキストに応じたコードを生成するために必要な情報を得ることができます。
もしあなたのデータサイエンス・プロジェクトで AI 生成画像やビデオ分析が必要なら、Hypereal AI を無料でお試しください(クレジットカード不要)。その API を使えば、AI メディア生成を Python のワークフローや Notebook に簡単に統合できます。
