9个可以提高Jupyter Notebook开发效率的魔术命令

2021-03-10 14:41:39 浏览数 (1)

Jupyter Notebook包含一写特殊的命令,我们称之为魔术命令。

正如它的名字,魔术命令是一个特殊的命令。魔术命令通过将%符号与要运行的命令一起使用来工作。

魔术命令有很多种,但在本文中我只展示最常用的9个魔术命令。让我们开始吧。

%who

它将显示您在jupiter Notebook环境中拥有的所有可用变量。让我在下面展示一个例子。

代码语言:javascript复制
import seaborn as sns
df = sns.load_dataset('mpg')
a = 'simple'
b = 2

我们创建了3个不同的变量;df, a,和b。如果您在您的Jupyter Notebook单元格中键入%who,它将显示所有现有的变量。

我们可以看到我们拥有所有的变量,包括环境中预先存在的变量。

如果您想要查看特定的变量,比如只查看str变量,该怎么办?它是很容易的。您需要在魔术命令之后输入对象类型。在本例中,它是%who str。

%timeit

这个命令很有趣。它通过多次运行来评估代码的执行速度,并产生执行时间的平均 标准偏差。让我们举个例子。

代码语言:javascript复制
import numpy as np
%timeit np.random.normal(size=1000)

使用%timeit 魔术命令,我们知道每个执行时间的执行时间只会偏差341ns左右。

当您想要确定代码执行和循环过程的稳定性时,这个命令非常有用。

%store

如果你在一个笔记本上做一个项目,而你想在另一个笔记本上传递你的变量,那该怎么办呢?您不需要pickle它或将它保存在某个目标文件中。您需要的是使用%store 魔术命令。

这是我们以前的Jupyter Notebook与' df '变量包含mpg数据帧。接下来,我想把这个“df”变量移动到另一个笔记本上。我只需要键入%store df。

“df”变量现在存储在Jupyter Notebook和准备在不同的Jupyter Notebook中共享使用。让我们尝试创建一个新的笔记本,并输入%store -r df。

我们的“df”变量已经转移到另一个笔记本上,准备用于另一个分析。关于%store 魔术命令的另一个好处在于,您可以删除记事本中的变量,而您仍然可以在%store 魔术命令中存储变量。

%prun

另一个与时间有关的魔术命令。%prun用于计算函数或程序执行每个函数需要多长时间。

%prun的惊人之处在于,它显示了一个列表,列表中其中可以看到语句中每个内部函数被调用的次数、每次调用的时间以及函数所有运行的累积时间。

让我们通过一个示例来运行%prun 魔术命令。

如上图所示,我们可以看到每个函数在语句中的执行时间,以及它们的执行时间加上累积时间。

%history or %hist

当你花了很多时间做分析后,你想知道你做过什么以及你目前的状况,或者有时候你不得不在单元格之间来回跳转以运行函数时,你会不会经常忘记历史的操作?

在这种情况下,我们可以使用%history 魔术命令查看您的活动日志,并跟踪您已经做了什么。

尝试在jupiter notebook单元格中运行%history,看看输出是什么。

%pinfo

当处理一个新的对象或包时,您希望获得所有的详细信息。如果你是像我一样懒,那么我们可以使用魔法命令%pinfo 得到所有的详细信息。

让我们尝试使用之前的DataFrame对象运行这个魔术命令。

使用这个神奇的命令,我们可以看到关于对象的所有信息和我们可以使用的所有参数。

%%writefile

对于开发和生产环境来说,jupiter Notebook并不是最好的IDE,但这并不意味着我们不能在jupiter单元中做到这一点。

如果您已经编写了可以复用的函数,并希望将其保存在python文件中,该怎么办呢?当然,您可以打开另一个IDE并复制粘贴该文件,但是有一种更简单的方法可以做到这一点。我们可以使用神奇的命令%%writefile来达到同样的结果。

让我们尝试运行以下代码。

代码语言:javascript复制
%%writefile test.py
def number_awesome(x):
    return 9

检查当前目录;现在应该有一个新的Python文件。

%pycat

如果您想采用另一种方式,比如将Python文件读取到您的jupiter notebook中,该怎么办?您也可以使用%pycat 魔术命令来实现这一点。

让我们尝试阅读我们之前的Python文件。

一个新的弹出窗口将显示Python文件中的所有代码。

当您希望在jupiter Notebook中使用许多生产和开发代码时,这个神奇的命令非常有用。

%quickref

最后一个魔法命令是%quickref。为什么这是应该知道的魔法命令?因为这个魔法命令详细解释了Jupyter Notebook中存在的所有魔法命令。

我们试着在你的笔记本上运行一下。

就像这样,现在您将看到您可以使用的每个魔法命令的所有解释。那是多么有用啊!

总结

魔术命令是一种特殊的命令,在Jupyter Notebook它可以帮助我们以提高我们的日常开发效率,作为一个数据科学家。我认为这9个魔法命令是必须知道的。

作者:Cornellius Yudha Wijaya

原文地址:https://towardsdatascience.com/9-magic-command-to-enhance-your-jupyter-notebook-experience-101fb5f3a84

deephub翻译组

0 人点赞