脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Jupyter Notebook还有魔术命令?太好使了

Jupyter Notebook还有魔术命令?太好使了

2023-11-06 11:28啥都会一点的研究生 Python

在Jupyter Notebooks中,Magic commands 是一组便捷的功能,旨在解决数据分析中的一些常见问题,可以使用%lsmagic 命令查看所有可用的魔术命令。

在Jupyter Notebooks中,Magic commands(以下简称魔术命令)是一组便捷的功能,旨在解决数据分析中的一些常见问题,可以使用%lsmagic 命令查看所有可用的魔术命令:

Jupyter Notebook还有魔术命令?太好使了

魔术命令通常分为两种:

  • 行魔术(line magics),其前缀为单个 % 字符,作用于单行输入
  • 单元魔术(cell magics),其前缀为双重 %%,作用于多行输入

以下列举一些在常见任务中用的较多的魔术命令,一起看看吧。

%matplotlib notebook

%matplotlib inline 函数用于在Jupyter notebook中呈现静态的matplotlib图表,若将 inline 替换为 notebook 可以得到可缩放和调整大小的图表,确保在导入matplotlib库之前调用该函数。

Jupyter Notebook还有魔术命令?太好使了

%run

%run 函数用于在Jupyter Notebook中运行一个Python脚本。

% pastebin

%pastebin 命令将代码上传到Pastebin并返回URL。Pastebin是一个在线内容托管服务,可以在其中存储纯文本,如源代码片段,然后可以与他人共享URL(与GitHub Gist类似)。

比如存在一个Python文件 file.py,内容如下:

#file.py
def foo(x):
    return x

在Jupyter Notebook中使用 %pastebin 会生成一个Pastebin URL:

Jupyter Notebook还有魔术命令?太好使了

%debug

如果在运行代码单元格时出现异常,可以在新行中键入 %debug 并运行它。这将打开一个交互式调试环境,将用户带到异常发生的位置,还可以检查程序中变量的值,并执行操作,要退出调试器,可以按 q:

Jupyter Notebook还有魔术命令?太好使了

%%writefile

%%writefile 将单元格的内容写入文件。如该例,代码将被写入一个名为 foo.py 的文件,并保存在当前目录中:

Jupyter Notebook还有魔术命令?太好使了

%%latex

%%latex 函数将单元格的内容呈现为LaTeX。这对于在单元格中编写数学公式和方程式肥肠有用:

Jupyter Notebook还有魔术命令?太好使了

%%time

使用 %%time 来获取运行代码单元格所用的时间:

Jupyter Notebook还有魔术命令?太好使了

%whos

查看已定义的变量列表,可以使用 %whos 或 %who_ls:

Jupyter Notebook还有魔术命令?太好使了

到这里一些常用的魔术命令就介绍完毕,感兴趣的可以将每个magic方法拿出来试试。但文章到这没结束,想着继续补充一些朱皮特相关的其他操作。

pprint

如果希望打印的数据结构的清晰且美观,pprint 是一个很好的模块(不仅在jupyter,终端啥的俺也常用),在打印字典数据时,尤其有用,如下示例,对比演示如何使用 print 和 pprint 来显示输出:

Jupyter Notebook还有魔术命令?太好使了

Jupyter Notebook还有魔术命令?太好使了

突出显示

我们可以在Jupyter中使用提示/注释框来突出显示一些重要的内容或需要引起注意的内容,提示框的颜色取决于指定的提示类型,只需在需要突出显示的单元格中添加以下任意代码:

(1) 蓝色信息框


Tip: Use blue boxes (alert-info) for tips and notes. If it’s a note, you don’t have to include the word “Note”.

Jupyter Notebook还有魔术命令?太好使了

(2) 黄色警示框


Example: Yellow Boxes are generally used to include additional examples or mathematical formulas.

Jupyter Notebook还有魔术命令?太好使了

(3) 绿色“成功”信息框


Use green box only when necessary like to display links to related content.

Jupyter Notebook还有魔术命令?太好使了

(4) 红色报警框


It is good to avoid red boxes but can be used to alert users to not delete some important part of code etc.

Jupyter Notebook还有魔术命令?太好使了

打印单元格内所有输出

考虑以下示例:

In  [1]: 10+5          
         11+6
Out [1]: 17

这是一个普通单元格的属性,只有最后一个输出会被打印,若想打印其他程序输出,除了挨个进行 print() ,还可以通过在jupyter顶部添加以下片段来打印所有输出:

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

然后可得到如下结果:

In  [1]: 10+5          
         11+6
         12+7
Out [1]: 15
Out [1]: 17
Out [1]: 19

若想恢复默认设置:

InteractiveShell.ast_node_interactivity = "last_expr"

批量注释

Ctrl/Cmd + / 自动注释掉单元格中选定的行, 再次按住该组合键将取消同一行代码的注释。

误删恢复

  • 如果删除了单元格的内容,可以通过按下 CTRL/CMD+Z 恢复它
  • 如果需要恢复整个已删除的单元格,按 ESC+Z 或选择 EDIT > Undo Delete Cells

 

以上就是本期的全部内容,期待点赞在看,我是啥都生,下次再见!

原文地址:https://mp.weixin.qq.com/s?__biz=MzUzNjE1Nzc1MA==&mid=2247491998&idx=1&sn=ecbeaaffda6211769ec92cd69d9fa5cf

延伸 · 阅读

精彩推荐