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

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

插播,更多文字总结·指南·实用工具·科技前沿动态第一时间更新在公粽号【啥都会一点的研究生

魔术命令通常分为两种

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

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

%matplotlib notebook

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

%run

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

% pastebin

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

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

python 复制代码
#file.py
def foo(x):
    return x

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

%debug

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

%%writefile

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

%%latex

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

%%time

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

%whos

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

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

pprint

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

突出显示

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

  • 蓝色信息框
html 复制代码
<div class="alert alert-block alert-info">
<b>Tip:</b> Use blue boxes (alert-info) for tips and notes. 
If it's a note, you don't have to include the word "Note".
</div>
  • 黄色警示框
html 复制代码
<div class="alert alert-block alert-warning">
<b>Example:</b> Yellow Boxes are generally used to include additional examples or mathematical formulas.
</div>
  • 绿色"成功"信息框
html 复制代码
<div class="alert alert-block alert-success">
Use green box only when necessary like to display links to related content.
</div>
  • 红色报警框
html 复制代码
<div class="alert alert-block alert-danger">
It is good to avoid red boxes but can be used to alert users to not delete some important part of code etc. 
</div>

打印单元格内所有输出

考虑以下示例

python 复制代码
In  [1]: 10+5          
         11+6
Out [1]: 17

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

python 复制代码
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

然后可得到如下结果

python 复制代码
In  [1]: 10+5          
         11+6
         12+7
Out [1]: 15
Out [1]: 17
Out [1]: 19

若想恢复默认设置

python 复制代码
InteractiveShell.ast_node_interactivity = "last_expr"

批量注释

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

误删恢复

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

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

相关推荐
databook3 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar4 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户8356290780514 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_4 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机11 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机12 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机12 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机12 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i12 小时前
drf初步梳理
python·django
每日AI新事件12 小时前
python的异步函数
python