Jupyter Notebook 是一个基于 Web 的交互式计算环境,支持 Python、R、Julia 等多种编程语言。它是数据科学家、分析师和研究人员的常用工具。Jupyter Notebook 提供了一个强大的用户界面,可以通过笔记本格式进行代码编写、运行、调试、可视化和文档化。
一、Jupyter Notebook 的安装
- 
使用 Anaconda 安装 Anaconda 是一个包含了众多科学计算包的 Python 发行版,其中包括了 Jupyter Notebook。安装步骤如下: - 下载 Anaconda 安装包:Anaconda官网
- 按照安装向导完成安装。
- 打开 Anaconda Navigator,并点击 Jupyter Notebook 启动它。
 
- 
使用 pip 安装 如果你已经安装了 Python,可以使用 pip 来安装 Jupyter Notebook: 
            
            
              bash
              
              
            
          
          pip install notebook二、启动 Jupyter Notebook
安装完成后,可以通过以下命令启动 Jupyter Notebook:
            
            
              bash
              
              
            
          
          jupyter notebook执行该命令后,会自动打开默认浏览器并加载 Jupyter Notebook 主界面。你也可以在浏览器中输入 http://localhost:8888 访问它。
三、Jupyter Notebook 界面介绍
Jupyter Notebook 的界面主要分为以下几个部分:
- 
Notebook Dashboard 这是 Jupyter Notebook 的主界面,显示了当前目录中的所有文件和文件夹。你可以在这里创建新的笔记本、打开现有笔记本或管理文件。 
- 
Notebook 界面 打开一个笔记本后,进入代码编辑界面。主要由以下几个部分组成: - 菜单栏:包含 File、Edit、View、Insert、Cell、Kernel、Widgets、Help 等选项。
- 工具栏:提供一些常用操作的快捷按钮,例如保存、添加新单元格、剪切、粘贴、运行单元格等。
- 单元格区域:主要的编辑区域。单元格有三种类型:代码单元格(Code Cell)、Markdown 单元格(Markdown Cell)和原始单元格(Raw Cell)。
 
四、单元格类型和操作
1、代码单元格 代码单元格用于编写和运行代码。可以通过 Shift + Enter 运行代码单元格,运行结果会显示在单元格下方。
            
            
              python
              
              
            
          
          print("Hello, Jupyter Notebook!")2、Markdown 单元格 Markdown 单元格用于编写富文本,支持 Markdown 语法,可以用来写说明文档、标题、列表、表格等。
            
            
              bash
              
              
            
          
          # 这是一级标题
## 这是二级标题
- 这是一个列表项3、原始单元格 原始单元格不执行代码,也不渲染 Markdown,通常用于保留原始文本或数据。
五、常用快捷键
Jupyter Notebook 提供了许多快捷键,极大地提高了工作效率。以下是一些常用的快捷键:
- Enter:进入编辑模式
- Esc:退出编辑模式
- Shift + Enter:运行当前单元格并跳转到下一个单元格
- Ctrl + Enter:运行当前单元格
- Alt + Enter:运行当前单元格并在下方插入一个新单元格
- B:在下方插入新单元格
- A:在上方插入新单元格
- D, D:删除选中的单元格
- Z:撤销删除单元格
- M:将单元格类型转换为 Markdown
- Y:将单元格类型转换为代码
六、Jupyter Notebook 的魔法命令
Jupyter Notebook 提供了一些特殊的命令,称为魔法命令(Magic Commands),用于简化一些常见操作。这些命令分为两类:行魔法(Line Magic)和单元魔法(Cell Magic)。
1、行魔法 行魔法以 % 开头,作用于单行代码。例如:
            
            
              python
              
              
            
          
          %timeit x = [i for i in range(1000)]2、单元魔法 单元魔法以 %% 开头,作用于整个单元格。例如:
            
            
              python
              
              
            
          
          %%timeit
x = [i for i in range(1000)]
y = [i**2 for i in range(1000)]七、数据可视化
Jupyter Notebook 支持多种数据可视化库,如 Matplotlib、Seaborn、Plotly 等。以下是一个简单的示例,使用 Matplotlib 进行数据可视化:
            
            
              python
              
              
            
          
          import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 创建图形
plt.figure(figsize=(10, 5))
plt.plot(x, y, label='Sine Wave')
plt.title('Simple Plot')
plt.xlabel('X axis')
plt.ylabel('Y axis')
plt.legend()
plt.show()八、Jupyter Notebook 扩展
Jupyter Notebook 有许多扩展(Extensions),可以通过 nbextensions 安装和管理。常用的扩展包括代码折叠、表格编辑器、变量检查器等。
安装 nbextensions:
            
            
              bash
              
              
            
          
          pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user安装后,可以在 Jupyter Notebook 的菜单中找到 Nbextensions 选项卡,启用或禁用所需的扩展。
九、Jupyter Notebook 与 Git 集成
Jupyter Notebook 文件(.ipynb)是 JSON 格式,直接在 Git 中查看会比较困难。可以使用 nbdime 工具来比较和合并 Jupyter Notebook 文件。
安装 nbdime:
            
            
              bash
              
              
            
          
          pip install nbdime配置 Git 使用 nbdime:
            
            
              bash
              
              
            
          
          nbdime config-git --enable十、Jupyter Notebook 的进阶用法
1、使用 ipywidgets 进行交互 ipywidgets 库允许在 Jupyter Notebook 中创建交互式控件,如滑块、按钮、文本框等。例如:
            
            
              python
              
              
            
          
          import ipywidgets as widgets
from IPython.display import display
slider = widgets.IntSlider(value=5, min=0, max=10, step=1, description='Number:')
display(slider)
def on_change(change):
    print(f"Slider value: {change['new']}")
slider.observe(on_change, names='value')2、集成 SQL 查询 可以使用 ipython-sql 扩展来在 Jupyter Notebook 中运行 SQL 查询:
            
            
              bash
              
              
            
          
          pip install ipython-sql在笔记本中加载扩展并运行查询:
            
            
              python
              
              
            
          
          %load_ext sql
%sql sqlite:///:memory:
%sql CREATE TABLE test (a INT, b TEXT);
%sql INSERT INTO test VALUES (1, 'Hello'), (2, 'World');
%sql SELECT * FROM test;Jupyter Notebook 是一个功能强大且灵活的工具,广泛应用于数据科学、教学、研究等领域。Jupyter Notebook 的强大之处在于其扩展性和社区支持,建议深入探索和利用各种扩展和工具,提高工作效率。
