【Python教程】如何使用Jupyter Notebook

Jupyter Notebook 是一个基于 Web 的交互式计算环境,支持 Python、R、Julia 等多种编程语言。它是数据科学家、分析师和研究人员的常用工具。Jupyter Notebook 提供了一个强大的用户界面,可以通过笔记本格式进行代码编写、运行、调试、可视化和文档化。

一、Jupyter Notebook 的安装

  1. 使用 Anaconda 安装 Anaconda 是一个包含了众多科学计算包的 Python 发行版,其中包括了 Jupyter Notebook。安装步骤如下:

    • 下载 Anaconda 安装包:Anaconda官网
    • 按照安装向导完成安装。
    • 打开 Anaconda Navigator,并点击 Jupyter Notebook 启动它。
  2. 使用 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 的界面主要分为以下几个部分:

  1. Notebook Dashboard 这是 Jupyter Notebook 的主界面,显示了当前目录中的所有文件和文件夹。你可以在这里创建新的笔记本、打开现有笔记本或管理文件。

  2. 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 的强大之处在于其扩展性和社区支持,建议深入探索和利用各种扩展和工具,提高工作效率。

相关推荐
一只小松许️9 分钟前
量化投资从入门到入土:金融基础概念
python·金融
QX_hao11 分钟前
【Go】--接口(interface)
开发语言·后端·golang
憨憨崽&23 分钟前
C语言、Java、Python 的选择与未来发展以及学习路线
java·c语言·python
练习两年半的帅b31 分钟前
正则表达式及应用
python
西西学代码33 分钟前
Flutter---个人信息(1)---实现简单的UI
开发语言·javascript·flutter
superman超哥35 分钟前
仓颉语言中正则表达式引擎的深度剖析与实践
开发语言·后端·仓颉
在坚持一下我可没意见1 小时前
Java 网络编程:TCP 与 UDP 的「通信江湖」(基于UDP回显服务器)
java·服务器·开发语言·tcp/ip·udp·java-ee
ZhengEnCi1 小时前
Python字符串完全指南-从创建拼接到格式化的高效实践
python
junziruruo1 小时前
半监督学习,少样本学习和零样本学习
python·学习·机器学习
西红柿维生素1 小时前
23种设计模式-框架中的使用
java·开发语言·设计模式