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

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

相关推荐
青 春 记 忆2 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
GlueNa2SiO32 小时前
03-Flask模板引擎Jinja2详解
笔记·python·flask
神奇霸王龙4 小时前
Cursor 3 + Claude Opus 4.8 屠榜:5 编程基座 IDE 卡位
ide·人工智能·ai·aigc·agent·ai编程·ai写作
临沂GEO4 小时前
GEO搜索优化科普|正规地理位置流量运营入门指南
大数据·人工智能·python·流量运营
大模型码小白4 小时前
Spring AI Tool 实现自然语言操作 MySQL 数据库详解
服务器·开发语言·数据库·人工智能·python·mysql·spring
荷蒲5 小时前
【小白量化Qbuddy】利用AI学习中文Python
人工智能·python·学习
数据狐(Datafox)7 小时前
京东商品列表API技术解析与落地应用(含标准 JSON 示例)
java·大数据·前端·人工智能·python·数据分析·json
量化吞吐机7 小时前
2026年下半年手工交易规则走向量化表达,产品该先接住哪一步
人工智能·python
Metaphor6928 小时前
使用 Python 读取和删除 Excel 文件属性
python·excel
迷迭香yy9 小时前
Python构建转融券多空识别系统从接口到因子的全流程 IG50免费开源股票数据API接口
开发语言·python·开源