jupyter lab中的魔法函数

725 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第25天,点击查看活动详情

导语

jupyterlab是平时开发Python程序常用的快速调试的好工具,在其中有着很多方便的魔法函数(Magic Functions),本文记录几个常用到的魔法函数。

jupyterlab的安装

直接使用pip install进行安装即可。

pip install jupyterlab

之后,只要在命令行启动即可,这里讲两个注意的地方:

  1. 在没有图形化界面的服务器上启动时,可以指定--no-browser来避免启动图形化界面(没有图形化界面的服务器上启动了也没有,还会多占资源);
  2. 可以指定端口,如果默认端口被占用或者指定的需求需要特定端口。
jupyter lab --no-browser --port=18888

例如,以上命令就是不启动图形化界面,并指定端口为18888的启动方式。

魔法函数简介

jupyter lab中的魔法命令是IPython预先定义好的具备特定功能的函数它们共分为两类:

  • 行魔法命令(line magic)  : 前缀为"%",作用范围为一行代码。
  • 单元格命令(cell magic) : 前缀为"%%",作用范围为一个单元格,且该单元格第一行必须是"%%"

常见魔法函数举例

%lsmagic函数

%lsmagic函数是用来列出所有魔法函数的魔法函数(有点绕哈)。一般情况下,如果我们想使用一个魔法函数,却忘记函数名如何写时,就可以使用%lsmagic来查询。

image.png

%timeit函数

%timeit用来统计某行代码的运行时间,这在评估代码的运行时间时特别有用。例如,我们对比两行代码的运行时间:

第一行代码计算幂次方操作:

%timeit   y = [x**3 for x in range(1e4)]

第二行代码计算乘法:

%timeit   y = [x*3 for x in range(int(1e4))]

image.png

上述输出结果中,loops代表这个命令被执行了多少次,以“平均值 +- 标准差”的形式展现运行时间的对比。

%pwd函数

%pwd函数即和Linux命令一致,打印当前的目录:

image.png

%%time

%%time是代码块命令,用于记录该cell运行的时间,例如:

%%time
num = [i for i in range(-1999, 99999)]
y = [x**3 for x in num]

运行结果如下:

image.png

%writefile命令

我们可以将某个单元格的运行结果保存到文件。这里需要使用魔法命令%%writefile

例如:

%%writefile test.txt

print("Hello world.")

image.png

打开test.txt文件,内容就是刚刚我们输出的内容。

image.png

除了上面介绍的这些之外,jupyter lab还有很多其他的魔法函数,读者可以自行探索。