全部文章

2-​​Jupyter Notebook​​介绍、安装、配置与使用


官网:https://jupyter.org/

 

Jupyter Notebook介绍

Jupyter Notebook其实和Pycharm类似,算是一个集成开发环境,把她当成IDE来理解即可,但是又有特殊之处。

Jupyter项目是一个非盈利的开源项目,源于2014年的ipython项目,它逐渐发展为支持跨所有编程语言的交互式数据科学和科学计算
Jupyter Notebook,原名IPython Notbook,是IPython的加强网页版,一个开源Web应用程序
名字源自Julia、Python 和 R(数据科学的三种开源语言)
是一款程序员和科学工作者的编程/文档/笔记/展示软件
.ipynb文件格式是用于计算型叙述的JSON文档格式的正式规范

Jupyter Notebook 与 SciPy、NumPy、pandas、matplotlib 等库的关系可以概括为 “平台与工具” 的关系。Jupyter Notebook 是一个 交互式计算环境,而 SciPy、NumPy 等是运行在该环境中的 功能库。它们之间没有直接的包含关系,但共同服务于数据分析和科学计算的完整工作流。


1. Jupyter Notebook 的定位

  • 核心功能

    • 提供基于 Web 的交互式编程界面,支持代码、文本、图表、公式的混合编写(通过 .ipynb 文件)。

    • 支持多种编程语言(如 Python、R、Julia),但主要与 Python 生态结合使用。

  • 角色

    • 平台:为数据科学家、研究人员提供便捷的探索性分析环境。

    • 粘合剂:整合 NumPy、pandas 等库的功能,并实时展示结果(如表格、图表)。


2. 与科学计算库的关系

(1) Jupyter Notebook 依赖这些库

  • Jupyter Notebook 本身不包含数值计算或数据分析功能,需借助第三方库实现具体任务:

    • 数据计算:通过 NumPy、SciPy 完成。

    • 数据处理:通过 pandas 操作结构化数据。

    • 可视化:通过 matplotlib、Seaborn 等生成图表。

(2) Jupyter Notebook 增强这些库的体验

  • 交互性:实时执行代码片段,直接展示结果(如 df.head() 直接渲染表格)。

  • 可视化嵌入:在 Notebook 中直接显示 matplotlib 图表(通过 %matplotlib inline 魔法命令)。

  • 文档整合:将代码、结果、说明文字整合为可分享的文档。


3. 典型协作示例

在 Jupyter Notebook 中,用户通常会按以下流程使用这些库:

# 1. 导入库
import numpy as np
import pandas as pd
from scipy import stats
import matplotlib.pyplot as plt
%matplotlib inline  # 在 Notebook 内嵌图表

# 2. 数据处理(pandas)
data = pd.read_csv("data.csv")
cleaned_data = data.dropna()

# 3. 数值计算(NumPy)
mean = np.mean(cleaned_data["value"])

# 4. 科学计算(SciPy)
t_stat, p_value = stats.ttest_ind(cleaned_data["groupA"], cleaned_data["groupB"])

# 5. 可视化(matplotlib)
plt.hist(cleaned_data["value"], bins=20)
plt.title("Data Distribution")
plt.show()  # 图表直接显示在 Notebook 中

4. 关键区别

组件角色与 Jupyter Notebook 的关系
Jupyter Notebook 交互式开发环境 平台,提供运行和展示的载体
NumPy 数值计算基础库 在 Notebook 中调用,处理数组和矩阵运算
pandas 数据操作与分析库 在 Notebook 中调用,处理表格数据
SciPy 高级科学计算工具库 在 Notebook 中调用,实现复杂数学算法
matplotlib 数据可视化库 在 Notebook 中调用,直接嵌入图表

5. 常见误解澄清

  • 误解 1:Jupyter Notebook 自带 NumPy/pandas 等功能。
    真相:这些库需独立安装,Jupyter 仅提供运行环境(通常通过 Anaconda 等工具链统一安装)。

  • 误解 2:Jupyter Notebook 是 IDE(如 PyCharm)的替代品。
    真相:Jupyter 适合探索性分析,但缺乏 IDE 的工程化功能(如调试、版本控制)。

  • 误解 3:必须用 Jupyter Notebook 才能使用这些库。
    真相:这些库可在任何 Python 环境(如脚本、IDE)中使用,但 Jupyter 能显著提升交互体验。


6. 总结

  • Jupyter Notebook 是舞台:提供编写、运行和展示代码的场所。

  • NumPy、SciPy、pandas、matplotlib 是演员:在舞台上执行具体任务。

  • 协作价值:Jupyter Notebook 的交互性和可视化能力,使这些库的功能更易被探索和验证。

如果想高效学习数据科学,建议以 Jupyter Notebook 为实验环境,逐步掌握这些库的协同使用!

为什么使用Jupyter Notebook?

  • 传统软件开发:工程/目标明确
    • 需求分析,设计架构,开发模块,测试
  • 数据挖掘:艺术/目标不明确
    • 目的是具体的洞察目标,而不是机械的完成任务
    • 通过执行代码来理解问题
    • 迭代式地改进代码来改进解决方法
实时运行的代码、叙事性的文本和可视化被整合在一起,方便使用代码和数据来讲述故事
对比Jupyter Notebook和Pycharm
画图

 数据展示:

总结:Jupyter Notebook 相比 Pycharm 在画图和数据展示方面更有优势。
******************************************************************************************************************************************************************************************************************************************************************
注意:在阅读下述内容之前,请确保已经安装了Anaconda,或者有所了解,否则请先阅读安装Anaconda 
******************************************************************************************************************************************************************************************************************************************************************

我下面演示的是通过Anaconda打包安装的Jupyter的配置过程

配置Jupyter 默认启动目录

1.打开cmd,输入 jupyter notebook --generate-config 

   如果出现 'jupyter' 不是内部或外部命令 错误,通常是因为 环境变量未配置

找到Anaconda安装路径下的:D:\install\tools\Anaconda312\Scripts,添加到环境变量path中

 

2.打开上个命令生成的jupyter_notebook_config.py配置文件,找到“c.NotebookApp.notebook_dir=‘’ ”, 把路径改成自己的工作目录;“c.NotebookApp.notebook_dir=‘’ ”是设置 Jupyter Notebook 默认启动目录的标准配置项。

注意:

从 Jupyter 4.0 开始,部分配置项名称可能调整。如果 c.NotebookApp.notebook_dir 无效,尝试以下替代项:

  1. 新配置项名称
c.ServerApp.root_dir = 'D:\data\jupyter'  # JupyterLab 3.0+ 或 Notebook 6.0+

​  查看版本:

jupyter notebook --version  # Notebook 版本
jupyter lab --version       # Lab 版本
jupyter --version           # 核心包版本

终极解决方案

如果以上方法均无效,直接通过命令行启动并指定目录:

jupyter notebook --notebook-dir="D:\data\jupyter"

或(新版):

jupyter server --ServerApp.root_dir="D:\data\jupyter"

附:配置项历史变化表

Jupyter 版本有效配置项名称说明
< 4.0 c.NotebookApp.notebook_dir 传统配置项
4.0 ~ 5.0 c.NotebookApp.notebook_dir 兼容模式
≥6.0 c.ServerApp.root_dir 统一为 ServerApp 命名空间

3.配置文件修改完成后,验证是否生效

jupyter notebook

以后在jupyter notebook中写的代码等都会保存在 自己创建的目录中。

 注意:如果通过 Anaconda Navigator 启动时上述配置未生效,但命令行生效,通常是因为 Anaconda 启动器覆盖了默认配置

 以下是具体原因和解决方案:修改快捷方式属性:删除最后面的“%USERPROFILE%”即可,因为%USERPROFILE%会覆盖我们之前的配置

 修改后的完整示例:

"D:\install\tools\Anaconda312\python.exe" "D:\install\tools\Anaconda312\cwp.py" "D:\install\tools\Anaconda312" "D:\install\tools\Anaconda312\python.exe" "D:\install\tools\Anaconda312\Scripts\jupyter-notebook-script.py" 

*设置jupyter密码:

方法 1:通过命令行快速设置密码

打开终端/命令提示符,执行以下命令:

jupyter notebook password

输入并确认密码

Enter password: ********
Verify password: ********

生成密码文件

    • 密码会被加密并保存在 ~/.jupyter/jupyter_notebook_config.json(Linux/macOS)或 C:\Users\你的用户名\.jupyter\jupyter_notebook_config.json(Windows)。

重启 Jupyter Notebook:jupyter notebook

jupyter notebook
  • 下次访问时会要求输入密码,不再需要令牌(Token)。

方法 2:手动生成密码并配置

步骤 1:生成密码哈希值

  1. 打开 Python 环境(确保已安装 Jupyter):

python

在 Python 中输入以下代码生成密码哈希:

from notebook.auth import passwd
passwd()

 

输入并确认密码后,会返回一个类似 'argon2:...' 的哈希字符串,复制该字符串。

 

步骤 2:修改配置文件

  1. 打开配置文件:

    • 路径为 ~/.jupyter/jupyter_notebook_config.py(Linux/macOS)或 C:\Users\你的用户名\.jupyter\jupyter_notebook_config.py(Windows)。

修改以下配置项:

# 禁用令牌登录(仅用密码)
c.ServerApp.token = ''

# 设置密码哈希
c.ServerApp.password = 'argon2:...(粘贴生成的哈希字符串)'

步骤 3:重启 Jupyter Notebook

验证密码是否生效

  1. 访问 http://localhost:8888 或你的 Jupyter 地址。

  2. 页面会显示 密码输入框,不再自动跳转。

  3. 输入设置的密码即可登录。

常见问题

1. 忘记密码如何重置?

  • 重新执行 jupyter notebook password 或手动生成新哈希并更新配置文件。

2. 密码不生效?

  • 检查配置文件路径是否正确。

  • 确保未启用其他认证方式(如 c.ServerApp.token 未被覆盖)。

  • 清除浏览器缓存或尝试无痕模式访问。

3. 同时使用密码和令牌(可选)

如果希望保留令牌登录(例如临时共享):

不设置 c.ServerApp.token = '',并在启动时通过 --no-browser 隐藏令牌:

jupyter notebook --no-browser

附加安全设置

  1. 绑定特定 IP(仅允许本地访问):

    c.ServerApp.ip = 'localhost'
  2. 禁用 root 权限运行

    jupyter notebook --allow-root
  3. 启用 HTTPS(需 SSL 证书):

    c.ServerApp.certfile = '/path/to/cert.pem'
    c.ServerApp.keyfile = '/path/to/key.pem'

jupyter notebook的使用

打开:Jupyter notebook:

方式1:开始-》找到Anaconda下面的jupter Noteboot打开即可

方式2:使用cmd命令打开:

jupyter notebook

 打开之后,会启动一个服务,浏览器默认会跳转到:

 创建项目和文件

 

notebook的文档格式是 .ipynb

内容界面操作-helloworld

文档重命名

 创建完成后会新打开一个窗口:并且我们可以对文档进行重命名

cell操作

  • 什么是cell?
    • cell:一对In Out会话被视作一个代码单元,称为cell
    • cell行号前的 * ,表示代码正在运行
  • Jupyter支持两种模式:
    • 编辑模式(Enter)
      • 命令模式下回车Enter或鼠标双击cell进入编辑模式
      • 可以操作cell内文本或代码,剪切/复制/粘贴移动等操作
    • 命令模式(Esc)
      • 按 Esc 退出编辑,进入命令模式
      • 可以操作cell单元本身进行剪切/复制/粘贴/移动等操作

鼠标操作

快捷键操作

  • 两种模式通用快捷键
    • Shift+Enter,执行本单元代码,并跳转到下一单元
    • Ctrl+Enter,执行本单元代码,留在本单元
  • 命令模式:按ESC进入
    • Y,cell切换到Code模式
    • M,cell切换到Markdown模式
    • A,在当前cell的上面添加cell
    • B,在当前cell的下面添加cell
  • 其他(了解)
    • 双击D:删除当前cell
    • Z,回退
    • L,为当前cell加上行号 <!--
    • Ctrl+Shift+P,对话框输入命令直接运行
    • 快速跳转到首个cell, Crtl+Home
    • 快速跳转到最后一个cell, Crtl+End -->
  • 编辑模式:按Enter进入
    • 补全代码:变量、方法后跟 Tab键
    • 为一行或多行代码添加/取消注释: Ctrl+/ (Mac:CMD+/)
    • 复制当前行:Alt+Shift+↓
    • 等宽代码选取:Alt+Shif,然后推动鼠标选取目标区域
  • 其他(了解):
    • 多光标操作: Ctrl键点击鼠标(Mac:CMD+点击鼠标)
    • 回退: Ctrl+Z (Mac:CMD+Z)
    • 重做: Ctrl+Y (Mac:CMD+Y)

markdown演示

 

作用:用作代码说明(标题)、模块划分

 

关于markdown的功能,非常多:标题,缩进,插入表格,插入图片等等。。。。

在这里我们掌握标题缩进即可:

标题

在markdown模式下,标题使用“#”来表示,几个井号就代表几级标题,注意!井号后面要跟一个空格,否则markdowm将其无法识别为标题

 缩进

 在markdown模式下,缩进使用减号“-”来表示:

 

Jupyter Notebook功能拓展

在使用Notebook 时,有很多痛点,例如:无法代码格式化、代码补全功能一般,无目录导航、无代码行号。。。等功能,于是就有了一些功能强大的插件来弥补这些功能,jupyter_contrib_nbextensions就是其中之一。

 jupyter_contrib_nbextensions 是什么?​​

jupyter_contrib_nbextensions 是一个由社区维护的扩展集合,为 Jupyter Notebook 提供增强功能。它包含数十个实用插件,可以显著提升 Notebook 的交互性和效率。

  • 这是一个为 ​​Jupyter Notebook​​ 提供大量扩展插件的工具包,包含 50+ 个增强功能,例如:
    • ​​目录生成​​(Table of Contents):自动为 Notebook 生成目录(支持多级标题跳转)。
    • ​​代码折叠​​(Codefolding):折叠代码块或 Markdown 内容,提升代码可读性。
    • ​​自动补全​​(Hinterland):类似 IDE 的代码提示(需配合 jupyter_nbextensions_configurator)。
    • ​​代码执行时间统计​​(ExecuteTime):显示每个代码单元格的运行时间。
    • ​​代码格式化​​(Code Prettify):通过快捷键格式化代码(如使用 autopep8)。
    • ​​主题切换​​(Theme):切换界面风格
    • 拼写检查:对 Markdown 中的英文文本进行拼写检查。
  • ​​适合场景​​:对 Jupyter Notebook 功能有进阶需求的用户。

是否好用?​​

​​优点​​

  • ​​功能丰富​​:覆盖了 Notebook 开发的常见痛点(如目录导航、代码优化)。
  • ​​即装即用​​:通过 nbextensions 配置界面,勾选即可启用插件。
  • ​​社区支持​​:长期维护,用户基数大,问题解决资源多。

​​缺点​​

  • ​​仅支持 Notebook​​:不兼容 JupyterLab。
  • ​​部分扩展过时​​:某些插件可能在新版 Jupyter 中失效。
  • ​​性能影响​​:安装过多扩展可能拖慢 Notebook 启动速度。

​​总结​​

  • ​​推荐使用​​:如果你依赖 Jupyter Notebook 且需要增强功能,它是一个高效的选择。
  • ​​不推荐使用​​:如果已迁移到 JupyterLab,或追求轻量级工具。

如何安装 jupyter_contrib_nbextensions​​

注意 较新版本的jupyter notebook按照下述步骤安装可能会报错:ModuleNotFoundError: No module named 'notebook.nbextensions'

根本原因​​:
Jupyter Notebook ≥7.0 版本重构了代码结构,移除了 notebook.nbextensions 模块,导致依赖此模块的旧版 jupyter_contrib_nbextensions 无法运行。

  • 弃用提醒​​:jupyter_contrib_nbextensions 已不再积极维护,长期建议转向 JupyterLab。

解决方案​​

​​(1) 降级 Jupyter Notebook 到兼容版本​​

  • 环境隔离​​:专为旧版扩展创建独立环境,避免污染其他项目。
conda create -n jupyter_legacy python=3.9 notebook=6.5.5 -c conda-forge
conda activate jupyter_legacy
conda install -c conda-forge jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

**************************************************************以下步骤在7.0以上版本的jupyter notebook环境下会报错,了解就好******************************************************************************************************

 

安装jupyter_contrib_nbextensions​​步骤如下:

# 安装扩展包
pip install jupyter_contrib_nbextensions
# 启用配置工具
python -m jupyter contrib nbextension install --user
# 启用扩展 
python -m jupyter nbextensions_configurator enable --user 
# 启动 Jupyter Notebook,在界面中勾选需要的扩展 
jupyter notebook
  • 启动 Jupyter Notebook,顶部菜单会多出 ​​Nbextensions​​ 标签,勾选所需功能即可。

 

 标题目录:

 ***********************************************************************上述扩展方式已经不在积极维护,会有很多报错,不建议使用-***********************************************************************************************************

jupyter_contrib_nbextensions​​平替方案推荐​​

根据你的需求场景,可以选择以下替代工具:


​​(1) 针对 JupyterLab 用户​​

​​JupyterLab 官方扩展​​:

  • ​​特点​​:专为 JupyterLab 设计,模块化程度更高,兼容性更好。
  • ​​推荐扩展​​:
    • @jupyterlab/toc:自动生成目录。
    • @jupyterlab/git:集成 Git 版本控制。
    • jupyterlab-lsp:代码自动补全和语法检查(类似 IDE)。
    • jupyterlab-code-formatter:代码格式化(支持 Black、Prettier)。

​​安装方式​​:

# 通过 pip 安装扩展
pip install jupyterlab-git jupyterlab-lsp

# 通过 JupyterLab 扩展管理器启用

(2) 轻量级替代工具​​

​​单功能插件​​:

  • 如果只需要特定功能,可单独安装小工具:
    • ​​目录生成​​:使用 nbconvert 导出时自动生成目录,或手动编写 Markdown 锚点。
  • ​​代码补全​​:安装 jupyter-lsp + python-lsp-server(支持 JupyterLab/Notebook)。

 

pip install jupyter-lsp python-lsp-server
  • 主题切换​​:直接修改 Jupyter 配置文件(~/.jupyter/custom/custom.css)或使用第三方主题库(如 jupyterthemes)。

 

(3) 现代化开发环境​​

​​VS Code + Jupyter 插件​​:

  • ​​优势​​:将 Jupyter Notebook 嵌入 VS Code,享受完整的 IDE 功能(调试、Git 集成、终端)。
  • ​​推荐功能​​:
    • 直接运行 .ipynb 文件。
    • 使用 VS Code 的代码补全、主题、扩展市场。
  • ​​安装​​:
    1. 安装 VS Code。
    2. 搜索并安装官方扩展 ​​Jupyter​​ 和 ​​Python​​。

​​(4) 其他工具​​

  • ​​Google Colab​​:
    • 云端 Notebook 环境,内置目录生成、GPU 加速等,适合临时实验。
  • ​​Deepnote​​:
    • 协作型云端 Notebook,支持实时共享和数据库直连。

综合建议​​

场景推荐工具
坚持使用 Jupyter Notebook jupyter_contrib_nbextensions
已迁移到 JupyterLab JupyterLab 官方扩展 + jupyterlab-lsp
追求 IDE 级功能 VS Code + Jupyter 插件
需要云端协作 Google Colab 或 Deepnote

注意事项​​

  • ​​版本兼容性​​:确保 Jupyter 版本与扩展兼容(建议使用最新稳定版)。
  • ​​按需启用​​:避免一次性启用过多扩展,可能引发冲突。
  • ​​备份配置​​:修改前备份 Jupyter 配置文件(~/.jupyter 目录)。

小结

  • 是什么
    • 是一个ipython的web加强版
  • 为什么要使用jupyter
    • 用于数据探索过程
  • 怎么用
    • 1.通过jupyter notebook 就可以使用
    • 2.保存文件是.ipynb
    • 3.每个内容,都对应的是一个cell
  • 快捷键
  • Shift+Enter,执行本单元代码,并跳转到下一单元
  • Ctrl+Enter,执行本单元代码,留在本单元

 

posted @ 2025-04-01 11:20  指尖下的世界  阅读(971)  评论(0)    收藏  举报