【JupyterNotebook】魔法命令(重要)

Jupyter Notebook 和 JupyterLab 提供了所谓的“魔法命令”(Magic Commands),它们以百分号 (%) 或双百分号 (%%) 开头,允许用户执行一些特殊的操作,比如测量代码运行时间、改变代码单元的行为、执行外部命令等。这里是一个完整的 Jupyter 魔法命令速成指南,帮助你快速了解并掌握这些命令。

1. 单行魔法命令(Line Magics)

单行魔法命令是以一个百分号 (%) 开头,作用于单行代码。

1.1 %time

用于测量一行代码的执行时间。

%time sum(range(10000))
1.2 %timeit

用于自动多次运行代码并计算平均执行时间,适用于性能测试。

%timeit sum(range(10000))
1.3 %run

运行一个 Python 脚本文件(.py)。

%run my_script.py
1.4 %load

加载外部 Python 脚本并将其内容插入当前单元格。

%load my_script.py
1.5 %matplotlib inline

在 Jupyter Notebook 中直接显示 matplotlib 生成的图形。

%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
plt.show()
1.6 %pwd

显示当前工作目录路径。

%pwd
1.7 %cd

更改当前工作目录。

%cd /path/to/directory
1.8 %ls

列出当前目录下的文件和文件夹。

%ls
1.9 %who

列出当前会话中的所有变量。

%who
1.10 %who_ls

列出当前会话中的所有变量名,以列表的形式返回。

%who_ls
1.11 %reset

清除当前工作空间中的所有变量。

%reset
1.12 %history

显示历史命令。可以加参数控制显示的命令数量或范围。

%history -n 1-10  # 显示第1到第10行命令
1.13 %store

用于保存变量到磁盘,便于跨会话使用。

x = 10
%store x
1.14 %pip%conda

安装 Python 包(在 Jupyter 中使用时,推荐用 %pip%conda 替代直接用 !pip!conda)。

%pip install numpy

2. 多行魔法命令(Cell Magics)

多行魔法命令是以两个百分号 (%%) 开头,作用于整个代码单元。

2.1 %%time

用于测量整个单元格代码的执行时间。

%%time
x = range(10000)
sum(x)
2.2 %%timeit

用于自动多次运行整个单元格的代码并计算平均执行时间。

%%timeit
x = range(10000)
sum(x)
2.3 %%run

执行一个 Python 脚本,并将脚本中的变量导入当前的 Jupyter 会话。

%%run my_script.py
2.4 %%capture

捕获并隐藏代码单元的输出(包括标准输出和错误输出)。

%%capture captured_output
print("This will not be displayed")
2.5 %%writefile

将代码写入指定的文件中。如果文件已存在,会覆盖该文件。

%%writefile my_script.py
print("Hello, world!")
2.6 %%bash

执行 Bash 命令(适用于 Unix-like 系统)。

%%bash
echo "Hello from Bash!"
2.7 %%html

将单元格的内容渲染为 HTML 格式。

%%html
<h1>This is a header</h1>
<p>This is a paragraph.</p>
2.8 %%latex

将单元格的内容渲染为 LaTeX 格式(通常用于数学公式)。

%%latex
\frac{1}{2} \sum_{i=1}^{n} x_i^2
2.9 %%python

可以运行 Python 代码块,适用于多语言支持的环境(例如,支持 IPython 的 Kernels)。

%%python
x = 10
x * 2
2.10 %%javascript

运行 [[JavaScript 代码]]。

%%javascript
alert("Hello, world!")
2.11 %%ruby

执行 [[Ruby 代码]]。

%%ruby
puts "Hello, Ruby!"
2.12 %%perl

执行 [[Perl 代码]]。

%%perl
print "Hello, Perl!\n"

3. 魔法命令的一些应用示例

3.1 测试代码性能

使用 %timeit 来测试代码的运行时间,适合进行性能优化。

%timeit [x**2 for x in range(1000)]
3.2 记录历史命令

查看并使用历史命令记录。

%history -n 1-10
3.3 执行外部脚本

可以通过 %run 来加载并运行一个外部脚本。

%run script.py
3.4 导出文件内容

使用 %%writefile 将代码导出到一个文件中。

%%writefile my_script.py
def add(x, y):
    return x + y
3.5 查看变量

查看当前会话中的所有变量。

%who
3.6 使用 %store 跨会话传递变量
x = "Hello"
%store x  # 存储变量 x

# 在另一个 Notebook 会话中,使用 %store -r 重新加载变量 x
%store -r x
print(x)

4. 魔法命令总结

  • 行魔法命令:以一个 % 开头,作用于单行代码。
  • 单行魔法命令示例
    • %time:测量单行代码执行时间。
    • %run:运行外部 Python 脚本。
    • %who:列出当前变量。
  • 单元格魔法命令:以两个 %% 开头,作用于整个单元格。
  • 多行魔法命令示例
    • %%time:测量整个单元格的执行时间。
    • %%bash:运行 Bash 命令。
    • %%capture:捕获输出。

这些魔法命令是 Jupyter 环境中的强大工具,能够提高你在数据分析、调试和自动化方面的效率。如果有任何魔法命令的疑问,或者需要更深入的解释,随时告诉我!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值