尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Jupyter Notebook 交互式编程实战:从安装到数据分析与可视化

Jupyter Notebook 交互式编程实战:从安装到数据分析与可视化 Jupyter Notebook 是数据科学、机器学习和日常 Python 开发里最常见的交互式编程工具。它把代码、运行结果、图表、说明文字放在同一个文档里写一段代码就立刻看到一段输出非常适合“边想边写、边写边验”的工作方式。这篇文章会从安装、启动、界面操作、交互式编程实战、批量脚本、JupyterLab 区别、PyCharm 集成一直讲到常见问题排查内容偏实操建议直接按流程走一遍。1. Jupyter Notebook 核心能力速览能力项说明项目类型开源 Web 交互式编程环境主要功能代码编辑、代码执行、富文本笔记、数据可视化、公式渲染、导出分享支持语言默认 Python支持 R、Julia、Scala 等通过内核扩展支持平台Windows、macOS、Linux启动方式命令行启动jupyter notebook浏览器访问 Web 界面默认端口8888可自定义端口是否支持 API / 批处理支持通过命令行、nbconvert、Papermill 批量执行和转换 Notebook交互方式单元格Cell为单位逐格执行即时反馈适合场景数据分析、模型调试、教学演示、算法实验、报告输出硬件门槛极低普通办公电脑即可运行训练大模型时另需 GPU 环境从本质上看Jupyter Notebook 的核心不是“写代码的 IDE”而是“可复现的分析文档”。把数据处理代码、统计结果、可视化图表、结论说明放在同一个 Notebook 里整条分析链路一目了然。这也是它成为 Kaggle 竞赛、论文复现、教学演示首选工具的原因。2. 交互式编程是什么为什么值得学传统 Python 开发通常是“写完整段脚本 - 运行整个文件 - 看最终输出”。如果中间报错要反复修改再重跑。交互式编程则把大任务拆成一个个小单元格每个单元格都是一段独立代码可以在任意位置停下来检查变量、查看中间结果改完一个单元格后不需要重新执行前面所有代码。Jupyter Notebook 的工作方式就是最典型的交互式编程一个 Notebook 文件由多个单元格组成单元格可以写代码也可以写 Markdown 说明。代码单元格可以单独执行结果直接显示在单元格下方。变量和状态在所有单元格间共享整个 Notebook 就是一个持久运行的内核会话。图表、表格、HTML 内容可以直接嵌入页面。这种模式的好处很明显。排查数据问题时不需要把整个项目跑完就能定位到异常数据做机器学习实验时可以分步观察特征分布、模型指标和中间输出写教程时代码和讲解放在同一份文档里读者可以边读边运行。当然交互式编程也有使用边界。它不太适合大型软件工程、复杂的包结构、需要长期后台运行的守护任务这类场景更适合用传统 IDE 加模块化脚本。Jupyter 更擅长的是探索性分析、算法验证和教学。3. 环境准备Anaconda、Miniconda 与 pip 安装Jupyter Notebook 依赖 Python 环境。安装方式主要有三种Anaconda、Miniconda、pip 安装。3.1 安装方式选择安装方式适合场景特点Anaconda数据分析刚入门、希望快速获得 Python 和常用库自带大量第三方库安装包较大约 2GB 以上Miniconda需要 conda 环境管理、不想安装过多预置包只有一个基础环境按需安装库pip 安装已有 Python 环境只差 Notebook 本身最小化安装灵活但环境需要自己管理如果电脑上已有 Python最简单的做法是在命令行执行pip install jupyter notebook如果希望使用完整的数据分析环境Anaconda 依然是新用户最稳妥的选择。Anaconda 自带 Python、conda、Jupyter Notebook、JupyterLab 以及 pandas、numpy、matplotlib 等高频库安装完不需要额外配置就能直接启动 Notebook。3.2 Anaconda 安装步骤访问 Anaconda 官网下载对应操作系统的安装包。双击安装包按提示完成安装。Windows 安装时可以选择“为当前用户安装”避免权限问题。安装完成后打开 Anaconda Navigator找到 Jupyter Notebook点击 Launch 启动。也可以打开系统命令行Windows 下是 Anaconda Prompt执行jupyter notebook启动。这里有一个建议Windows 用户安装 Anaconda 时如果不是很清楚“加入 PATH”的含义保持默认选项即可。安装完成后再用 Anaconda Prompt 启动环境可以避免 PATH 冲突导致的模块识别问题。3.3 pip 安装轻量环境如果不想安装 Anaconda只想快速尝试 Jupyter Notebook可以这样操作。创建一个独立的虚拟环境是更规范的做法避免污染全局 Pythonpython -m venv jupyter_env # Windows 激活 jupyter_env\Scripts\activate # macOS / Linux 激活 source jupyter_env/bin/activate pip install --upgrade pip pip install jupyter notebook pandas matplotlib安装完成后再启动jupyter notebook第一次启动会生成配置文件并自动打开默认浏览器。如果浏览器没有自动打开可以看命令行输出的 URL例如http://localhost:8888/tree手动复制到浏览器访问。3.4 验证安装启动后出现 Notebook 主页说明安装成功。也可以在命令行中查看版本jupyter --version输出中会显示 jupyter_core、notebook、ipython 等子模块的版本号。如果出现“不是内部或外部命令”或者“command not found”通常是 Python 或 Scripts 目录没有加入 PATH需要检查安装路径。4. 启动 Jupyter Notebook 服务Jupyter Notebook 本身是一个 Web 服务启动入口是命令行。搞清楚启动逻辑后面排查问题会轻松很多。4.1 命令行启动在项目目录下打开终端执行cd /path/to/your/project jupyter notebook执行后终端会输出类似下面的信息[I 2025-03-04 10:00:00.100 LabApp] Jupyter Notebook 6.5.4 is running at: [I 2025-03-04 10:00:00.100 LabApp] http://localhost:8888/ [I 2025-03-04 10:00:00.100 LabApp] or http://127.0.0.1:8888/ [I 2025-03-04 10:00:00.100 LabApp] Use Control-C to stop this server看到这行输出说明服务已经启动。终端窗口不要关闭否则服务会停止。4.2 指定端口和浏览器如果 8888 端口被占用可以换一个端口jupyter notebook --port 9999也可以让 Jupyter 自动寻找可用端口jupyter notebook --port0指定浏览器打开比如强制使用 Chromejupyter notebook --browser chrome在 Windows 上如果默认浏览器打开后是空白页可以参考下文常见问题部分处理。4.3 远程服务器访问如果需要访问服务器上的 Notebook可以指定监听地址jupyter notebook --ip0.0.0.0 --port8888这样同一网络内的其他机器就能通过http://服务器IP:8888访问。但直接暴露在公网有安全风险必须设置密码并限制访问来源。更安全的做法是使用 SSH 隧道访问不建议直接开放公网端口。5. 界面与基本操作5.1 Notebook 界面启动后进入的tree页面是文件管理页可以新建、上传、重命名 Notebook 文件。点击New下拉按钮选择 Python 3就能创建一个新的 Notebook。Notebook 界面主要由四部分组成区域作用工具栏保存、新建、剪切、运行、停止、重启内核等快捷按钮单元格列表每个单元格是 Notebook 的基本单位内核状态右上角显示当前内核状态如 Idle、Busy生命周期菜单File、Edit、View、Insert、Cell、Kernel、Widgets、Help5.2 单元格操作Notebook 有两种常用单元格Code 单元格用来写代码按Shift Enter运行。Markdown 单元格用来写说明支持标题、列表、公式按Shift Enter渲染。常用快捷键快捷键作用Shift Enter运行当前单元格并进入下一个单元格Alt Enter运行当前单元格并在下方插入新单元格A在当前单元格上方插入单元格B在当前单元格下方插入单元格D D连续按两次 D删除当前单元格M将当前单元格切换为 Markdown 单元格Y将当前单元格切换为 Code 单元格Esc退出单元格编辑模式进入命令模式5.3 保存、导出与检查点Notebook 文件以.ipynb格式保存本质是 JSON 文件。手动保存快捷键是Ctrl S同时 Jupyter 会自动保存检查点。导出成其他格式可以走菜单File - Download as - ...支持导出 HTML、Markdown、PDF、Python 脚本等。如果命令行导出使用jupyter nbconvertjupyter nbconvert --to markdown analysis.ipynb这批转换能力很适合做报告和博客素材把analysis.ipynb转成 Markdown 后代码、输出、图表会一并保留。6. 交互式编程实战从简单运行到可视化这一节用几个小任务演示 Jupyter Notebook 的实际使用方式。每个任务都能在本地独立跑通。6.1 第一个 Notebook新建一个 Notebook在第一个单元格中输入print(hello, jupyter)按Shift Enter下方会输出hello, jupyter。再新建一个 Markdown 单元格输入# 数据分析实验 本实验用于演示 Jupyter Notebook 的交互式编程流程。按Shift Enter渲染后单元格变成带格式的说明文字。这说明 Notebook 同时承担了“代码”和“笔记”两个角色。6.2 与外部文件交互在同一个 Notebook 中可以读取外部 CSV 文件并直接查看形状、字段和示例数据import pandas as pd df pd.read_csv(data.csv) print(df.shape) df.head()执行后不用print也能直接显示 DataFrame 的渲染表。这种能力让数据探索变得非常高效——每做一步清洗都可以立刻查看结果发现异常再回退修改。6.3 批量任务与脚本化运行Jupyter Notebook 当然可以执行批量任务。虽然不适合直接做高并发服务但非常适合“遍历文件夹批量处理文件”的场景。例如批量读取目录下所有 Excel 文件并做汇总import glob import pandas as pd frames [] for file in glob.glob(./data/*.xlsx): frames.append(pd.read_excel(file)) result pd.concat(frames, ignore_indexTrue) result.to_csv(merged.csv, indexFalse) print(f共处理 {len(frames)} 个文件输出 merged.csv)这种循环任务在 Notebook 里运行的优势是中间任何一步可以停下来检查frames列表里到底加载了多少数据而不是等整个脚本结束。如果要做更规范的批量实验推荐使用 Papermill 批量执行带参数化的 Notebookpip install papermill papermill notebook.ipynb output.ipynb -p batch_size 64 -p epoch 10Papermill 可以把 Notebook 变成可批量执行的模板通过参数注入来循环跑多次实验适合机器学习调参和报表生成。6.4 使用魔术命令Jupyter Notebook 内置了很多魔术命令这些命令不是标准 Python 语法但在 Notebook 中很实用。测量单行代码执行时间%time sum(range(10_000_000))测量整段代码执行时间%%time total 0 for i in range(100_000_000): total i print(total)查看当前变量列表%whos运行外部 Python 脚本%run my_script.py在 Notebook 中嵌入 matplotlib 图表%matplotlib inline import matplotlib.pyplot as plt data [1, 4, 9, 16, 25] plt.plot(data) plt.show()通过%matplotlib inline图表会直接渲染在单元格下方不需要额外打开窗口。这是 Notebook 做数据可视化的关键配置。6.5 与 DataFrame 交互数据清洗是 Notebook 最常见的用途。比如按条件筛选、分组聚合、缺失值统计每一步都独立运行结果随看随得# 查看缺失值 df.isnull().sum() # 按类别分组聚合 df.groupby(category)[amount].mean()这样做的好处是所有中间过程都以单元格为单位保留后续复盘时能清楚知道每个字段是怎么处理出来的。7. Jupyter Notebook 与 JupyterLab 的区别JupyterLab 是 Jupyter Notebook 的下一代界面二者共享同一套内核和文件格式但交互体验不同。对比项Jupyter NotebookJupyterLab界面风格单一文档标签页多标签、多面板 IDE 风格多文件操作较弱通常一次打开一个 Notebook支持拖动分屏同时编辑多个文件文件管理简单文件浏览内置文件管理器、终端、文本编辑器扩展能力有限支持丰富的扩展功能更接近现代 IDE上手门槛低略高但熟练后效率更高兼容性稳定成熟仍在快速迭代如果只是跑数据分析、写教程Notebook 完全够用。如果需要同时编辑代码、终端命令和文档或者希望在一个界面里管理项目JupyterLab 更合适。启动 JupyterLab 的命令jupyter lab和 Notebook 一样JupyterLab 也在浏览器中运行默认端口也是 8888。如果同时启动 Notebook 和 Lab注意端口冲突问题。8. 在 PyCharm 中使用 Jupyter Notebook不少用户习惯在 PyCharm 里写 Python也想知道 PyCharm 怎么用 Jupyter Notebook。分两种情况。情况一在 PyCharm 中创建 Jupyter Notebook 文件PyCharm Professional 版本原生支持 Notebook。安装 Jupyter 相关依赖后在项目里新建.ipynb文件PyCharm 会识别并提供单元格交互界面。使用前需要在Settings - Project - Python Interpreter中确认解释器里已经安装了notebook包。PyCharm 联网安装依赖的方法pip install jupyter notebook然后在 PyCharm 中新建文件时选择Jupyter Notebook类型即可开始使用。情况二在 PyCharm 的终端里启动 Jupyter如果不使用 PyCharm 内置 Notebook 编辑器可以直接打开 PyCharm 的 Terminal执行jupyter notebookPyCharm 的终端本质上就是系统终端可以正常启动 Jupyter 服务然后用浏览器访问 http://localhost:8888。这里有一个常见区别PyCharm 内置的 Notebook 编辑器会把单元格执行结果显示在 IDE 内部命令行启动的 Notebook 则在浏览器中运行。两者可以并存按实际需求选择。9. 资源占用与性能观察Jupyter Notebook 的资源占用包含两部分服务进程和内核进程。服务进程非常轻量主要是 HTTP 服务和静态文件托管。内核进程是真正执行 Python 代码的进程内存占用取决于当前加载的变量和库。如果加载了大型 DataFrame内存会明显增长执行深度学习训练时还需额外关注 GPU 显存占用。在 Notebook 内部可以查看当前内核的进程号和内存情况import os import psutil pid os.getpid() process psutil.Process(pid) memory_mb process.memory_info().rss / 1024 / 1024 print(f当前内核 PID: {pid}, 内存占用: {memory_mb:.2f} MB)psutil需要提前安装pip install psutil观察资源占用时要特别注意不要长期不重启内核长时间运行后内核会积累很多无用变量。大对象会被保存在内存中即使删除了变量内存也可能不会立即释放。单元格越多内核占用的内存越大必要时使用Kernel - Restart清空状态。CPU 方面纯数字运算默认单线程如果需要并行处理数据要使用multiprocessing或joblib。要注意部分并行库在 Notebook 中可能因为运行时环境问题出现阻塞更稳妥的做法是把并行计算封装成独立 Python 脚本再用%run调用。如果觉得 Notebook 卡顿先检查是不是有单元格执行了耗时的while循环。此时工具栏中的内核状态会显示 Busy可以通过Kernel - Interrupt中断执行。10. 常见问题与排查方法Jupyter Notebook 在启动和使用过程中有几个出现频率很高的问题下面按现象整理成排查清单。问题现象可能原因排查方式解决方案Windows 系统打开 Jupyter 后页面空白浏览器兼容性或内核连接失败用无痕模式打开查看终端日志换默认浏览器使用 Chrome/Edge执行jupyter notebook --browser chrome浏览器没有自动打开服务已启动但没有触发浏览器查看终端输出 URL手动复制http://localhost:8888/tree到浏览器命令jupyter不是内部命令Python 或脚本目录未加入 PATH执行where python查看安装路径重新安装并勾选 PATH或用 Anaconda Prompt 启动启动后端口被占用8888 端口已被其他进程使用终端看不到正常 URL或页面报端口占用更换端口jupyter notebook --port9999内核一直显示 Connecting 或连接失败内核崩溃、依赖缺失、环境不一致打开终端查看内核日志检查是否是虚拟环境混用重启内核或重新安装ipykernel某些模块找不到当前内核的 Python 环境和 pip 安装环境不一致执行import sys; sys.executable查看内核解释器路径在内核对应的环境中重新安装缺失模块单元格执行时间过长有死循环或大数据量计算观察内核状态是否 Busy使用Kernel - Interrupt中断检查循环条件Notebook 文件打不开文件损坏或 JSON 格式错误用文本编辑器打开.ipynb文件检查使用自动备份文件恢复或重新导出10.1 Windows 打开后空白的经典处理Windows 上打开 Jupyter Notebook 出现空白页最常见的原因不是没装成功而是浏览器访问的地址或内核 WebSocket 连接异常。推荐处理优先级关闭当前浏览器标签页重新访问终端里输出的 URL。换 Chrome 或 Edge 浏览器避开部分版本 Safari 的兼容问题。执行jupyter notebook --no-browser再手动打开 URL。检查终端是否处于运行状态终端关闭后页面自然无法连接。刷新页面时带上 token路径通常类似http://localhost:8888/tree?token一串字符。10.2 如何在其他浏览器打开如果在系统默认浏览器里打开后不习惯可以明确指定浏览器jupyter notebook --browserchromeWindows 下如果--browser chrome不生效可以修改配置文件。先生成配置jupyter notebook --generate-config然后在生成的jupyter_notebook_config.py中找到c.NotebookApp.browser配置项改成c.NotebookApp.browser C:/Program Files/Google/Chrome/Application/chrome.exe %s修改后重启 Notebook 即可。11. 最佳实践与合规提醒Jupyter Notebook 虽然上手简单但在工程化使用时依然有一些建议。第一次启动先做最小验证不要一次性加载大量数据先创建一个带print(ok)的 Notebook确认环境是通的。把 Notebook 文件、数据、输出结果分目录管理。建议结构project/ ├── notebooks/ # 存放 .ipynb 文件 ├── data/ # 输入数据 ├── outputs/ # 导出结果 └── scripts/ # 可复用 Python 脚本避免把敏感数据明文放在 Notebook 中。Notebook 的output会保存执行结果删除单元格后内容可能残留在.ipynb文件里发布前要做脱敏检查。从外部文件、数据库、网络接口读取数据时注意授权和隐私合规。需要输出报告、发布到博客或对外分享时使用脱敏数据或模拟数据。Notebook 适合探索不适合作为唯一的代码仓库。逻辑复用部分要及时抽成.py模块并在 Notebook 中import避免把几百行代码堆在同一个单元格里。长时间运行的批量任务建议加上日志和断点保存。Notebook 中每个单元格可以单独保存中间结果比如每个批次处理完就写一次 CSV这样即使内核中断也能从上次结果继续。远程启动 Notebook 时不要直接暴露公网端口至少设置访问密码jupyter notebook password执行后按提示输入密码下次访问时需要验证。使用组织数据前确认数据来源合法涉及个人信息的处理要坚持最小必要原则不保存不必要的数据。12. 总结与下一步Jupyter Notebook 的价值在于把“写代码”和“看结果”之间的距离压缩到最低。对于数据分析、机器学习实验、教学演示这些场景它比传统脚本开发更直观对于大型工程它可以作为探索工具但最终还要回归模块化脚本。这篇文章写了安装、启动、界面、交互式编程、魔术命令、批量脚本、JupyterLab 区别、PyCharm 关联、资源占用和常见问题。建议你拿到后先建一个虚拟环境用 pip 安装 Jupyter再把 6.1 节的第一个 Notebook 跑通。如果遇到 Windows 空白页按第 10 节的顺序排查端口、浏览器和 token。后续可以往这几个方向扩展把 Notebook 接入 Git 做版本管理清理输出后提交用 Papermill 把 Notebook 变成参数化任务模板用 JupyterLab 的扩展搭建更顺手的开发环境把 Notebook 导出成报告接入团队的数据分析流程。先跑通基础流程再慢慢往工程化方向完善这个思路最稳。
返回列表