如何在 Jupyter Notebooks 中使用 Cursor AI (2026)**
使用 Cursor 进行 AI 辅助的数据科学与 Notebook 开发
开始使用 Hypereal 构建
通过单个 API 访问 Kling、Flux、Sora、Veo 等。免费积分开始,扩展到数百万。
无需信用卡 • 10万+ 开发者 • 企业级服务
如何在 Jupyter Notebooks 中使用 Cursor AI (2026)
Cursor AI 是目前最出色的 AI 驱动代码编辑器之一,但它对 Jupyter Notebook 的支持可能并不直观。如果你是一名深耕于 Notebook 的数据科学家、机器学习工程师或分析师,本指南将展示如何利用 Cursor 的 AI 功能来增强处理 .ipynb 文件的体验。
我们将涵盖安装配置、AI 辅助 Notebook 开发的最佳工作流,以及使 Cursor 明显快于传统 Jupyter 环境的实用技巧。
Cursor 支持 Jupyter Notebooks 吗?
支持。Cursor 基于 VS Code 构建,后者原生支持 Jupyter Notebook。当你从 Cursor 中打开 .ipynb 文件时,你将获得完整的 Notebook 体验——包括交互式单元格、行内输出、图表、Markdown 单元格——以及置于其上的所有 Cursor AI 功能。
| 功能 | Cursor + Jupyter | JupyterLab | VS Code + Jupyter |
|---|---|---|---|
| 交互式单元格 | 是 | 是 | 是 |
| 行内图表 | 是 | 是 | 是 |
| AI 代码生成 | 是 (Claude/GPT) | 否 | 有限 (Copilot) |
| 带上下文的 AI 聊天 | 是 | 否 | 有限 |
| Agent 模式 | 是 | 否 | 否 |
| 变量检查器 | 是 | 是 | 是 |
| 内核 (Kernel) 管理 | 是 | 是 | 是 |
| 扩展 | VS Code 生态 | JupyterLab 扩展 | VS Code 生态 |
Cursor 相比 JupyterLab 的主要优势在于:在生成代码或回答问题时,Cursor 的 AI 理解你的整个 Notebook 上下文——包括所有单元格、输出结果和导入的库。
第一步:为 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"
第二步:在 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 打开聊天面板,与 Cursor 讨论你的 Notebook。AI 可以看到你的整个 Notebook,包括单元格的输出结果:
数据科学工作流示例 Prompt:
- "看下单元格 3 的输出。为什么准确率这么低?"
- "单元格 7 的图表很难读,优化一下可视化效果。"
- "为单元格 12 中的模型编写一个执行交叉验证网格搜索的函数。"
- "我遇到了 SettingWithCopyWarning,帮我修复它。"
Agent 模式 (Cmd+I / Ctrl+I)
Agent 模式是 Notebook 中最强大的功能。它可以创建新单元格、编辑现有单元格并执行多步骤的数据科学工作流:
Prompt: "对单元格 1 中加载的数据集执行完整的 EDA。为以下内容创建独立的单元格:
数值列的分布图、相关性热力图、缺失值分析,以及在 Markdown 中总结关键发现。"
Agent 模式会在你的 Notebook 中创建 4-5 个新单元格,每个单元格都包含相应的代码和 Markdown。
第三步:实用工作流
工作流 1:探索性数据分析 (EDA)
无需手动编写 EDA 代码,使用 Cursor 逐步生成:
# 单元格 1: 加载数据 (手动编写)
import pandas as pd
df = pd.read_csv('sales_data.csv')
df.head()
然后在聊天面板中输入:
Prompt: "参考上方的 dataframe 输出。在后续单元格中生成完整的 EDA:
1. 数据类型和缺失值摘要
2. 数值列的分布图 (直方图)
3. 相关性矩阵热力图
4. 类别特征的 Top 计数
5. 如果有日期列,绘制时间序列图"
Cursor 会根据你具体的 Dataframe 列名生成五个正确的单元格代码。
工作流 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:
Prompt: "修复这个错误。训练数据中有需要处理的字符串值。"
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
Prompt: "模型准确率为 0.72。建议并实施 3 种不同的方法来提升性能。
为每种方法创建一个新单元格,并在最后的总结单元格中对比结果。"
工作流 4:可视化优化
生成基础图表,然后利用 AI 进行润色:
# 基础图表
df['sales'].plot()
Prompt: "将其优化为出版级画质。添加合适的标签、标题、图例,使用简洁的风格,
添加趋势线,并标注出峰值。"
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 提问前,务必先运行单元格,以便它查看实际的数据维度、列名和错误消息。
2. 使用 Markdown 单元格作为上下文
添加 Markdown 单元格来描述你的意图。Cursor 会将这些内容作为上下文参考:
## 目标
使用 telco 数据集预测客户流失。目标变量是 'Churn'。
我们需要至少 85% 的准确率才能投入生产环境。
3. 引用特定单元格
在聊天时,明确指代单元格:
- "单元格 5 中的 merge 产生了重复项,请修复。"
- "使用单元格 3 中的清洗后的 Dataframe 来训练随机森林模型。"
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) 或免费版 | 免费 | 免费 + 付费档位 |
常见问题解答
我可以在 Cursor 的免费层级中使用 Jupyter Notebooks 吗? 可以。免费的 Hobby 计划每月包含 50 次快速高级请求,你可以在 Notebook 中使用。
Cursor 支持 .py 百分比格式 (percent-format) 的 Notebook 吗?
支持。Cursor 同时支持 .ipynb(标准格式)和带有 # %% 单元格标记的 .py 文件。AI 功能在两种格式下均可正常工作。
Cursor 能读取图表输出吗? Cursor 可以读取文本输出和 Dataframe 展示。对于图表,它可以读取生成图表的代码并建议改进方案,但无法直接通过视觉分析生成的图表图像。
大数据集怎么办?
Cursor 的 AI 不会将你的原始数据加载到其上下文中。它读取的是你的代码和单元格输出。对于大数据集,请确保通过显示输出(如 df.head(),df.describe())为 AI 提供足够的信息,助其理解数据结构。
总结
Cursor 将 Jupyter Notebook 从一个手动编码环境提升为 AI 辅助的数据科学工作流。行内生成、带上下文的聊天以及 Agent 模式的结合,使探索性分析、模型构建和可视化变得显著高效。
关键在于保持单元格输出可见、利用 Markdown 单元格提供背景信息,并在聊天中明确引用特定单元格。这能为 Cursor 提供生成准确、理解上下文的代码所需的信息。
如果你的数据科学项目涉及 AI 生成图像或视频分析,请免费试用 Hypereal AI ——无需信用卡。其 API 可轻松将 AI 媒体生成集成到你的 Python 工作流和 Notebook 中。
