Jupyter Notebook 完全指南:从原理到实战的必读教程
如果一个课程在 Day 4 就专门留出一整节来讲 Jupyter Notebooks那说明它不仅是顺手用一下的工具而是整套课程内容的承载方式。NTMSS2023 这类密集型训练营包括很多机器学习、神经科学、数据科学方向的暑期课程之所以做这个安排是因为后面几乎所有练习、实验、作业提交都发生在 Notebook 里。很多人第一次接触时会觉得它不过是个能写代码的网页但真正用两周之后才会意识到Notebook 的好坏使用习惯直接决定了你是在愉快地做分析还是在跟浏览器和内核较劲。这篇文章不打算只讲安装命令。我会从 Jupyter 的核心原理讲起把 Cell、Kernel、前后端分离这些概念拆清楚再带你从零完成安装、启动、创建、运行和导出最后补充一套在项目实战中真正用得上的最佳实践。读完你会理解Jupyter 为什么这么设计也能独立排查最常见的启动失败、空白页面、内核错误等问题。1. 这篇文章真正要解决的问题先回答一个很多人没认真想过的问题Jupyter Notebook 到底解决的是哪一类痛点如果你平时用 PyCharm 或 VS Code 写 Python你的工作流通常是写一个.py文件然后运行整个文件在终端里看输出。这套流程对完整、独立、可重复运行的软件项目非常合适但对探索性数据分析和科研计算并不友好。你在做数据清洗时往往需要反复执行某几行看中间结果再改下一步如果每次都要重跑整个文件不仅浪费时间还会丢失中间过程的上下文。Jupyter 改变的是这个节奏。它把计算拆成了一个个 Cell你可以先加载数据再单独运行某个可视化代码块看看效果不满意就改这一格再运行。整个过程是边想边写边看而不是写完再跑。除了探索式工作Notebook 还有一个关键价值它把代码、输出、图表和文字说明放在同一个文档里。这对课程作业、项目汇报、技术博客、论文复现都极其重要。读者不仅能看到结果是什么还能看到你是怎么一步步得到这个结果的。从 NTMSS2023 这类课程的角度看选择 Notebook 还有两个实际原因低门槛不需要学生先掌握 IDE 配置、虚拟环境、调试器等复杂技能浏览器打开就能用。便于检查与提交课程方可以拿到有代码、有输出、有解释的完整文件不需要额外整理 Word 文档。所以这篇文章适合以下几类读者准备参加 NTMSS2023 或类似课程但之前很少使用 Jupyter 的同学。已经安装了 Anaconda但只知道双击图标打开不理解背后机制的新手。在 Windows 或 macOS 上遇到jupyter 不是内部或外部命令、页面空白、内核崩溃等问题的用户。想建立一套Notebook 工程化使用规范的进阶学习者。读完这篇文章你应该能完成三件事第一正确安装并启动 Jupyter Notebook第二理解 Cell、Kernel、魔术命令、虚拟环境这些核心概念第三用一套规范的方式管理你的 Notebook 项目避免常见的坑。2. Jupyter Notebook 的核心概念与设计思想2.1 从记事本到可计算文档Jupyter 这个名字来自三个核心语言的缩写Julia、Python、R。虽然它现在支持几十种语言内核但 Python 用户占绝大多数。Notebook 的核心文件格式是.ipynb全称是 Interactive Python Notebook。它本质上是一个 JSON 文件里面按顺序存储了多个 Cell。每个 Cell 可以是一段代码、一段 Markdown 文字或者一段原始文本。这是它与普通.py文件最大的区别同一个文件里既有可运行的代码也有渲染后的文字说明和图片输出。你可以在浏览器里看到渲染后的漂亮效果但底层只是一个结构清晰的 JSON。这也是为什么你可以在 GitHub 上直接预览 Notebook也可以用nbconvert把它转换成 HTML、PDF、Markdown 等格式。2.2 Cell 是什么Cell 是 Notebook 的基本单元。常用有两种Code Cell包含可执行代码。运行后输出会显示在 Cell 下方。Markdown Cell使用 Markdown 语法编写说明文字支持标题、列表、公式、图片等。每次运行一个 Code CellNotebook 会把这个 Cell 里的代码发送给内核Kernel执行然后把返回值或打印输出显示出来。这里有一个初学者最容易忽略的事实同一个 Notebook 里前面的 Cell 定义的变量在后面所有 Cell 中都是可见的。因为所有 Cell 共享同一个内核进程的命名空间。举个例子# Cell 1 x 10# Cell 2 print(x) # 输出 10很多人第一次遇到的情况是单独运行 Cell 2 时报错提示x未定义。原因往往是你在运行 Cell 1 之前就已经运行了 Cell 2。Notebook 的共享命名空间既是优点也是坑优点是你不用每次重跑前面的代码缺点是 Cell 之间的执行顺序一旦混乱整个文档就失去了可复现性。2.3 Kernel 是什么Kernel 是真正执行代码的后端进程。你在界面上点击运行实际上是通过前端把代码发给 KernelKernel 执行完再把结果传回浏览器。Jupyter 的架构可以简单概括为三层层作用常见实现前端用户交互界面展示 Cell 和输出Jupyter Notebook、JupyterLab、VS Code、PyCharm后端服务管理 Notebook 文件与请求路由jupyter-server / notebook server内核实际执行代码的计算引擎ipykernelPython、IRkernelR等这层分离带来了两个重要结果你完全可以在浏览器里写代码但真正计算发生在服务器或者云端的另一台机器上。远程开发场景下你只需要把端口映射出来即可。你可以在同一个 Notebook 中选择不同内核比如在 Python 内核和 R 内核之间切换虽然同一个 Notebook 不建议来回切。2.4 Kernel 状态的含义在 Notebook 界面右上角你会看到一个圆形小图标空心圆内核空闲尚未开始执行。实心圆填充内核忙碌正在执行代码。如果长时间处于忙碌状态可能是代码进入了死循环或者执行了非常耗时的操作。遇到死循环时可以在菜单中选择Kernel - Restart来强制重启内核。注意重启后所有变量都会丢失需要重新运行前面的 Cell。3. 环境准备Jupyter Notebook 安装方式对比安装 Jupyter 的路径不止一条。选择哪条取决于你的使用场景和对系统环境的控制需求。这里给出三种主流方式。3.1 方式一安装 Anaconda推荐新手Anaconda 是一个 Python 发行版内置了 Jupyter Notebook、JupyterLab、Spyder、conda 包管理器和大量数据科学库。对新手来说安装 Anaconda 之后Jupyter 基本开箱即用不需要额外配置。到 Anaconda 官网下载对应操作系统的安装包一路默认安装即可。安装完成后在命令行输入jupyter notebook如果能看到日志输出并自动打开浏览器说明安装成功。为什么推荐新手用 Anaconda因为数据科学常用的numpy、pandas、matplotlib、scikit-learn都已经装好了省去了逐个安装依赖的麻烦。坏处则是安装包体积较大而且预装的包版本可能不是你项目需要的版本。3.2 方式二使用 pip 安装适合有 Python 基础如果你已经安装了 Python不想因为 Jupyter 再引入一个庞大的 Anaconda可以直接用 pippip install jupyter安装完成后同样使用jupyter notebook启动。这个方式比较轻量但要注意Jupyter 只会使用你当前安装它的 Python 环境。如果你用系统 Python 安装那 Notebook 里就只能用系统 Python 的包无法使用 conda 环境里的包。这一点很多人踩坑。如果之后需要切换环境要安装并注册对应的 ipykernel后面第 8 节会详细讲。3.3 方式三使用 Miniconda进阶推荐Miniconda 是 Anaconda 的精简版只包含 conda 和 Python。你可以按需创建环境、安装包。conda install jupyter这种方式的好处是环境可控磁盘占用小坏处是很多东西都要自己动手装不适合纯新手。3.4 三个方式怎么选方式适合场景优点缺点Anaconda新手、课程学习、数据分析开箱即用预装库多体积大包版本可能保守pip已有 Python 环境只是补装 Jupyter轻量使用已有环境环境隔离要自己管Miniconda熟悉命令行、多环境管理灵活体积小配置成本高一些无论选择哪种方式安装后建议先确认版本jupyter --version如果输出显示了jupyter-core、ipython、notebook等组件的版本号说明安装成功。4. 启动 Jupyter Notebook 并完成第一个 Notebook4.1 选择工作目录启动 Notebook 前先想清楚一个经常被忽略的问题你应该在哪个目录启动它Jupyter 启动后你在浏览器文件列表里看到的默认目录就是你启动命令时所在的目录。如果你在某个课程文件夹里启动打开的就是这个文件夹里的文件。推荐做法为每个项目建立独立文件夹先进入这个文件夹再启动 Jupyter。以 Windows 为例cd C:\Users\你的用户名\NTMSS2023\Day4 jupyter notebook以 macOS / Linux 为例cd ~/NTMSS2023/Day4 jupyter notebook4.2 启动后会发生什么启动成功后终端会出现类似下面的日志[I 10:08:12.100 NotebookApp] Serving notebooks from local directory: /Users/xxx/NTMSS2023/Day4 [I 10:08:12.101 NotebookApp] Jupyter Notebook 6.x.x is running at: [I 10:08:12.101 NotebookApp] http://localhost:8888/?tokenxxxxxxxxxxxxxxxxxxxxxxxx这里localhost:8888是本地服务地址浏览器的每次请求都会由notebook server处理。日志中的token是访问凭证。如果你的浏览器没有自动打开可以把完整地址复制到浏览器地址栏手动访问。注意启动 Notebook 后这个终端窗口不要关闭。一旦关闭终端Notebook 服务就会停止浏览器里的页面会显示连接失败。4.3 创建并运行第一个 Notebook在 Notebook 首页文件列表中点击右上角的New选择Python 3即可创建一个新的 Notebook。在新页面里默认会有一个空的 Code Cell。在 Cell 中输入print(Hello, NTMSS2023!)按Shift Enter运行输出会出现在 Cell 下方Hello, NTMSS2023!到这里你已经完成了第一个 Notebook 的运行。之后可以把文件保存为first_notebook.ipynb。5. 核心操作实战代码、Markdown 与快捷操作如果想要高效地使用 Jupyter Notebook只靠鼠标点运行是远远不够的。这一节会带你掌握真正高频使用的操作。5.1 代码 Cell 与输出Code Cell 是你写 Python 代码的地方。支持 Python 语法高亮、自动补全Tab 键、错误提示等基础功能。先创建一个 Code Cell输入以下代码# 文件路径Notebook Cell 中直接执行无需创建单独文件 import numpy as np import matplotlib.pyplot as plt # 设置在 Notebook 中内联显示图片 %matplotlib inline x np.linspace(0, 2 * np.pi, 100) y np.sin(x) plt.plot(x, y) plt.title(Sin Curve) plt.show()按Shift Enter运行后你会看到一条正弦曲线直接输出在 Cell 下方。这是 Notebook 最吸引人的特性之一图表和代码出现在同一文档里。代码里的%matplotlib inline是魔术命令作用是让 matplotlib 生成的图片直接嵌入到 Notebook 输出区域而不是弹出一个新的窗口。后面会进一步说明魔术命令。5.2 Markdown Cell 与文档化在 Notebook 中把 Cell 类型切换为 Markdown就可以编写富文本内容。你会经常用 Markdown Cell 做这些事记录思路和分析结论。用标题组织 Notebook 的结构。用 LaTeX 公式写数学推导。插入图片链接或表格。在第 5.1 节的绘图 Cell 上方插入一个 Markdown Cell切换到 Markdown 类型输入## 正弦函数可视化 这段代码生成一条正弦曲线。 $$ y \sin(x) $$按Shift Enter运行后Markdown 会被渲染成带标题和数学公式的展示效果。这样你的 Notebook 不再只是一堆代码而是一份自解释的分析报告。5.3 常用快捷键Jupyter Notebook 有两种输入模式编辑模式正在输入内容的状态按Esc退出到命令模式。命令模式可以对 Cell 进行管理操作按Enter进入编辑模式。高频快捷键如下按键模式功能Shift Enter任意运行当前 Cell并选中下一个 CellAlt Enter任意运行当前 Cell并在下方插入新 CellA命令模式在当前 Cell 上方插入新 CellB命令模式在当前 Cell 下方插入新 CellM命令模式将当前 Cell 改为 Markdown 类型Y命令模式将当前 Cell 改为 Code 类型D D连按两次命令模式删除当前 CellShift Tab编辑模式查看函数签名或参数提示Ctrl S编辑模式保存 Notebook这些快捷键不用刻意背用熟几个核心的就够了Shift Enter运行、A/B插入、M/Y切换类型、D D删除。5.4 魔术命令以%开头的行指令被称为魔术命令。它们是 IPython 提供的增强功能不是标准 Python 语法但极大提升了 Notebook 使用体验。常用的魔术命令# 统计某段代码的执行时间 %time sum(range(1000000)) # 显示整段代码的执行时间 %%time result 0 for i in range(100000): result i # 快速查看变量的更多信息 %whos # 在 Notebook 中内联显示 matplotlib 图片 %matplotlib inline # 执行外部 Python 脚本 %run my_script.py # 列出当前 Cell 中定义的全部变量 %who%time和%%time的区别值得一提%time只统计它所在那一行的执行时间%%time统计整个 Cell 的执行时间。在调试性能问题时非常有用。6. 运行结果与效果验证读完前文你已经能创建 Noteboook 并执行代码了。但执行成功和整个环境工作正常是两件事。这一节说说验证思路。6.1 启动层面的验证启动jupyter notebook后从终端日志和浏览器页面两个角度确认终端没有报错退出的情况。浏览器能打开文件列表页面。点击已有.ipynb文件能正常进入 Notebook 编辑器页面。如果这三个都满足说明 notebook server 本身工作正常。6.2 计算层面的验证进入一个新 Notebook执行以下代码import sys print(sys.version)预期输出是当前内核使用的 Python 版本号。如果输出正常说明内核可用。再运行一个简单的数据处理示例验证第三方库import pandas as pd df pd.DataFrame({name: [Alice, Bob], score: [88, 92]}) print(df.head())如果能正常输出 DataFrame说明pandas环境没问题。6.3 输出保存与导出验证做完整分析之后通常需要把 Notebook 分享出去。最常用的导出方式是jupyter nbconvert --to html first_notebook.ipynb也可以导出为 Markdownjupyter nbconvert --to markdown first_notebook.ipynb导出成功后first_notebook.html或first_notebook.md会出现在当前目录检查文件是否存在即可确认导出成功。6.4 如何判断是否运行成功在 Notebook 中Cell 左侧的In [ ]会变成In [1]Out[1]表示存在输出。如果执行报错Cell 下方会出现红色异常堆栈信息。这里要提醒一句没有报错不代表结果正确只代表代码没有让内核抛出异常。数据分析项目的正确性验证往往要回到数据本身比如检查数据量、检查分布、检查关键指标是否在合理范围。7. 常见问题与排查思路Jupyter Notebook 在使用过程中出现的问题不少但大多数都有非常固定的排查路径。下面列出高频问题。问题现象可能原因排查方式解决方案提示jupyter 不是内部或外部命令Python 或 Anaconda 未加入系统 PATH或安装失败检查安装路径在终端输入python --version确认 Python 可用重新安装 Anaconda 并勾选加入 PATH或用python -m jupyter notebook启动浏览器打开后页面空白notebook server 启动失败、端口占用、浏览器缓存问题查看启动终端日志是否有报错换浏览器访问试试重启 notebook server换个端口jupyter notebook --port8889清理浏览器缓存Notebook 自动在错误的浏览器打开系统默认浏览器设置问题确认系统默认浏览器启动后手动复制日志中的 URL 到目标浏览器访问内核一直显示忙碌或执行无响应代码死循环或资源耗尽检查代码是否有while True死循环在菜单中执行Kernel - Restart内核反复崩溃Kernel Restarting代码触发了底层崩溃或包版本不兼容查看浏览器控制台和终端日志尝试运行极简代码测试逐个排除第三方库更新或降级冲突包端口 8888 被占用已有其他 notebook 服务在运行在终端看lsof -i :8888macOS/Linux或netstat -anoWindows使用--port8889或--no-browser启动想在别的浏览器打开 Notebook默认浏览器不是目标浏览器手动复制访问地址在启东前设置默认浏览器或用--browser参数指定conda/mamba 环境里启动的 Notebook 看不到指定环境的包环境没有注册对应 ipykernel检查当前环境是否安装了ipykernel在激活的环境中运行python -m ipykernel install --user --name环境名无法创建.py文件Notebook 的设计目标是以.ipynb为主用File - Download as - Python (.py)导出或用jupyter nbconvert --to script转换在这些问题中jupyter不是内部或外部命令是 Windows 新手最常见的问题。原因一般是你安装了 Anaconda但安装时没有勾选Add to PATH。不必急着改系统环境变量更稳妥的做法是在 Anaconda Prompt 中启动 Jupyter或者用python -m jupyter notebook来启动。另一个高发问题是页面空白。先区分两种情况终端里能不能看到服务正常启动的日志。如果终端显示服务已经运行在localhost:8888但浏览器空白大概率不是 Jupyter 本身的问题而是浏览器缓存或扩展冲突可以先换无痕窗口试试。8. Notebook 与虚拟环境、内核管理很多人在 Jupyter 里遇到包找不到的问题根本原因混在一起Notebook 默认使用的内核环境并不一定是你当前激活的 conda 环境。8.1 为什么会有这个问题当你用 Anaconda 创建了一个新环境conda create -n ntmss python3.10 conda activate ntmss pip install pandas numpy然后启动 Jupyterjupyter notebook此时 Notebook 右下角显示的内核可能是Python 3 (ipykernel)但它在 Notebook 里运行import pandas时却报错。为什么因为你启动的 Jupyter 可能是从 base 环境的快捷方式启动的它默认注册的是 base 环境的内核。解决思路是把当前 conda 环境注册成 Jupyter 可用的内核。# 确保当前环境有 ipykernel conda activate ntmss pip install ipykernel # 注册内核 python -m ipykernel install --user --namentmss --display-name Python (ntmss)之后重启 Jupyter在Kernel - Change Kernel里选择Python (ntmss)再运行import pandas就能找到包了。8.2 获取当前内核信息在 Notebook 里运行以下代码可以看到正在使用的 Python 解释器路径import sys print(sys.executable)如果输出的是/opt/anaconda3/envs/ntmss/bin/python说明当前内核来自ntmss环境如果输出 base 环境的路径说明内核还是 base。这是一个快速判断方法。8.3 如何把 Notebook 转换为 .py 文件前面提到Notebook 默认格式是.ipynb。如果你想得到纯.py文件有两种方式。方式一在浏览器页面中使用菜单File - Download as - Python (.py)方式二使用命令行转换jupyter nbconvert --to script first_notebook.ipynb转换后会生成first_notebook.py。需要注意的是转换出的.py文件会保留所有代码 Cell但会把 Markdown 内容变成注释。如果你需要更干净的结果可以借助jupytext这类工具进行双向同步不过那是进阶话题了。8.4 在 PyCharm 和 VS Code 中使用 Notebook现在的主流 IDE 也支持打开.ipynb文件。在 PyCharm 专业版中可以直接打开 Notebook 文件选择解释器后运行 Cell。在 VS Code 中安装 Python 扩展后同样可以打开 Notebook并使用已有的虚拟环境作为内核。如果你习惯在 IDE 里写代码但不希望切换窗口这种方案很合适。不过要提醒一点同一个.ipynb文件如果在 Jupyter 和 IDE 中交替编辑建议不要同时打开两个编辑器因为可能存在冲突保存导致文件损坏。任何一端先关闭再做另一端的编辑。9. Jupyter Notebook 还是 JupyterLab很多刚接触的用户会困惑Jupyter 家族里既有 Notebook又有 Lab我到底该用哪个其实两者底层是同一套内核和文件格式只是前端界面不同。维度Jupyter NotebookJupyterLab界面形态单文件标签页多标签工作台类似 IDE文件管理简单文件列表自带文件资源管理器、终端多文件对比不方便支持并排打开插件扩展有限支持更丰富的扩展适合场景经典 Notebook 工作流、课程教学项目开发、多任务并行如果你参加 NTMSS2023 这类课程导师给的讲义或作业地址通常仍然是jupyter notebook风格所以先掌握 Notebook 界面不会错。如果你在做自己的数据科学项目建议直接使用 JupyterLabjupyter labJupyterLab 打开后的默认界面不再是一个单个 Notebook而是一个可折叠的工作台。左侧是文件树中间是打开的 Notebook 或 Markdown 文件右侧是属性面板。它还内置了终端你可以在里面执行 shell 命令不需要另开一个命令行窗口。还有一点很实用在 JupyterLab 里你可以把某个.py文件用代码编辑器打开同时把另一个.ipynb文件放在旁边边看代码边看 Notebook。这种体验更接近现代 IDE。不过 JupyterLab 也有学习成本比如启动后怎么切换目录。实际上它的目录就是左侧文件树当前所在目录。启动时先cd到目标目录再执行jupyter lab左侧文件树就会显示该目录内容进入任意子目录后新建的所有 Notebook 默认保存在该子目录中。10. 最佳实践与工程建议这一节的内容是我认为整篇文章最有长期价值的部分。Jupyter Notebook 用起来简单但在真实项目中容易失控。很多人在课程结束、进入工作或科研项目后回头才意识到早期没有养成好习惯。10.1 命名与组织结构给 Notebook 文件命名时建议使用编号 主题的方式00_数据概览.ipynb 01_数据清洗.ipynb 02_特征工程.ipynb 03_模型训练.ipynb 04_结果分析.ipynb examples/这样按顺序执行时依赖关系更清晰。注意 Notebook 文件名不要包含空格和中文在部分系统或版本控制工具中会引起不必要的问题。10.2 保持 Cell 执行顺序可复现Notebook 的一个常见问题是你早上运行了 Cell 1 到 Cell 8下午又改了 Cell 5然后直接运行 Cell 9结果依赖的是修改前的状态。为了避免这种混乱建议调整代码顺序后执行Kernel - Restart Run All完整跑一遍。不要反复穿插运行 Cell尽量保持从上到下的执行顺序。如果某个 Cell 依赖前面的结果最好在 Notebook 开头用文字说明。10.3 清理输出后再提交如果把 Notebook 作为作业或报告提交建议在最终提交前清空所有 Cell 输出Kernel - Restart Clear Output然后在确认输出正确后再保存。这样做的意义是避免文件中残留无意义的中间输出也让审阅者能从头到尾看到干净的运行过程。10.4 不要在生产环境直接使用 NotebookNotebook 非常适合探索和演示但不适合直接作为生产调度任务运行。实际项目中更常见的做法是在 Notebook 中完成分析和建模实验。把最终验证过的代码整理成.py模块交由调度平台或容器化服务运行。原因是 Notebook 的交互式执行顺序、隐式状态和不完整的错误处理在无人值守的自动化场景里会成为隐患。如果你想自动化运行 Notebook可以考虑jupyter nbconvert --execute但生产链路依然建议使用标准 Python 工程结构。10.5 安全问题与数据边界涉及真实业务数据时必须注意不要将含有敏感信息的 Notebook 直接上传到公开仓库。提交前检查输出中是否包含身份证号、手机号、密钥等敏感信息。如果数据不能出内网不要在本地公网环境启动 Notebook 服务也不要随意使用远程共享链接。默认启动方式会带token不要关闭token验证否则任何人访问你的端口都能执行代码。10.6 使用版本控制.ipynb文件本质是 JSONGit 可以管理它但 diff 可读性较差。推荐在项目中增加.gitignore.ipynb_checkpoints/ *.pyc同时可以考虑配置nbstripout来在提交前自动去除输出内容或者使用jupytext把 Notebook 同步为.py文件做文本化版本管理。11. 总结与后续学习方向这篇文章从 NTMSS2023 的课程实践出发完整拆解了 Jupyter Notebook 的使用链路它的核心概念是 Cell 和 Kernel前后端分离是它灵活性的来源安装路径推荐按场景从 Anaconda、pip、Miniconda 中做选择启动后的高频操作集中在 Cell 编辑、Markdown 渲染、魔术命令和快捷键虚拟环境与内核的映射关系是包找不到问题的关键Notebook 和 JupyterLab 的关系则取决于你更偏重经典教学还是项目开发。如果只看操作Jupyter 的门槛很低。但从工程角度它需要你额外把控执行顺序、环境隔离、输出清理和数据安全。这些细节未必会在课程 Day 1 讲到却是你从能跑通走向把 Notebook 用专业的分水岭。接下来可以继续探索的方向包括用 JupyterLab 构建更完整的本地分析工作台通过ipywidgets给 Notebook 增加交互组件用jupytext实现 Notebook 与.py文件双向同步结合nbstripout解决团队协作中的版本管理问题有需要时也可以了解远程服务器或云环境下的 Jupyter 部署方式。最后留一个简单练习新建一个名为day4_exercise.ipynb的 Notebook用 Markdown 写下你要解决的一个问题用 Code Cell 加载一组数据可以是pandas自带的示例数据完成一次简单统计和一次可视化然后从File - Download as导出为 HTML 或.py文件。跑完这个过程你对 Jupyter 的理解会比只看教程要深入得多。建议把本文收藏备用之后遇到安装或内核问题时可以按目录快速查找。

相关新闻

AI时代数据保护新挑战:从传统备份到数据韧性平台的演进与实践

AI时代数据保护新挑战:从传统备份到数据韧性平台的演进与实践

1. 当AI成为数据洪流的“新引擎”,我们如何守住最后一道防线?最近和几个做数据运维和开发的朋友聊天,话题总绕不开AI。大家一边兴奋地讨论着用大模型重构业务流程、用Agent自动化处理任务,一边又隐隐有些焦虑。这种焦虑不是来自技…

2026/8/26 10:50:57 阅读更多 →
MATLAB基础函数深度解析:linspace、reshape与ttest2的工程本质

MATLAB基础函数深度解析:linspace、reshape与ttest2的工程本质

1. 项目概述:为什么“清风数模第三章——基础篇”是MATLAB入门绕不开的硬核起点 “清风数模”这个词,在国内高校数学建模教学圈里几乎等同于“靠谱入门教材”的代名词。我带过七届校队,每年新生集训第一周,必发PDF——不是《MATLA…

2026/8/26 10:50:57 阅读更多 →
用Key Fob改造抢答器:从硬件拆解到主机判分的完整方案

用Key Fob改造抢答器:从硬件拆解到主机判分的完整方案

最近帮一个客户做企业知识竞赛,他们提了个挺有意思的需求:想用类似车钥匙的遥控钥匙扣当答题器,每个参赛队拿一个,主持人说完题目后大家按键抢答,屏幕实时显示谁先按的、按的对不对。市面上现成的抢答器不是不好&#…

2026/8/26 10:50:57 阅读更多 →

最新新闻

Maya2026零基础入门:从建模到渲染的完整流程

Maya2026零基础入门:从建模到渲染的完整流程

很多零基础学三维的同学,打开 Maya 的第一反应通常是:界面怎么这么乱?密密麻麻的菜单、铺满屏幕的视图、各种英文术语,完全不知道从哪里下手。然后去搜教程,看到的不是讲得太深听不懂,就是内容太碎拼不成知…

2026/8/26 11:30:09 阅读更多 →
FPN特征金字塔网络:多尺度目标检测的核心原理与PyTorch实战

FPN特征金字塔网络:多尺度目标检测的核心原理与PyTorch实战

1. 从“单层”到“多层”:为什么目标检测需要特征金字塔?在深度学习,特别是计算机视觉领域,目标检测任务一直是个硬骨头。早期的模型,比如R-CNN系列,或者更早的YOLOv1,它们通常只在卷积神经网络…

2026/8/26 11:30:09 阅读更多 →
VideoMamba:基于状态空间模型的视频理解新范式解析与实践

VideoMamba:基于状态空间模型的视频理解新范式解析与实践

1. 项目概述:当视频理解遇上状态空间模型最近在视频理解领域,一个名为VideoMamba的新模型架构引起了不小的关注。作为一名长期关注计算机视觉前沿动态的从业者,我习惯性地去研读了它的论文,并动手进行了复现和测试。简单来说&…

2026/8/26 11:30:09 阅读更多 →
Terminator终端深度定制:精确控制窗口大小与字体显示

Terminator终端深度定制:精确控制窗口大小与字体显示

1. 从一次“眼瞎”的调试经历说起 那天下午,我正盯着一个布满日志的Terminator终端窗口,试图从一堆密密麻麻的字符里找出一个特定的错误码。屏幕上的字小得像蚂蚁,我不得不把脸凑近显示器,眯着眼睛一行行地扫。十分钟后&#xff0…

2026/8/26 11:30:09 阅读更多 →
OpenCode插件化开发环境:7类必备插件提升编码效率与工程实践

OpenCode插件化开发环境:7类必备插件提升编码效率与工程实践

1. 项目概述:为什么我们需要一个“插件化”的代码编辑器如果你和我一样,每天有超过8小时的时间是在和代码打交道,那么编辑器就是你最亲密的战友。从记事本到IDE,我们追求的无非是两个字:效率。但一个功能大而全的集成开…

2026/8/26 11:30:09 阅读更多 →
AI代码助手与低代码报表工具融合:打造智能数据可视化开发新范式

AI代码助手与低代码报表工具融合:打造智能数据可视化开发新范式

1. 项目概述:当AI代码助手遇上积木式报表最近在折腾数据可视化项目时,我一直在想,有没有一种方式能让我们这些开发者从繁琐的图表配置、数据对接和样式调整中解放出来,把更多精力放在业务逻辑和数据分析本身。直到我尝试将 Claude…

2026/8/26 11:29:07 阅读更多 →

日新闻

Python random 模块常用函数详解:从入门到实战

Python random 模块常用函数详解:从入门到实战

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

2026/8/26 0:00:40 阅读更多 →
《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》索引目录: 《Microsoft Sql server 2008 Internals》读书笔记--目录索引 在上篇文章中,主要介绍了创建数据库的基本语法和FileGroup的初步知识。需要注意的是: 关于FileGroup 如果你的系统是用Raid设备直接存…

2026/8/26 1:18:18 阅读更多 →
政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体已经从概念试点阶段,转入了政务服务的常态化落地应用;在实际使用过程中,它能自主理解办事需求、辅助完成填报申报、开展材料预审,并联动多个系统协同作业,真正嵌入到政务办理的全流程当中。但在落地推进过…

2026/8/26 1:18:18 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 3:38:12 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 3:38:18 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 3:38:23 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/26 3:50:20 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/25 10:31:12 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/26 1:24:05 阅读更多 →