当前位置: 首页 > news >正文

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,内容如下:

#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中使用提示/注释框来突出显示一些重要的内容或需要引起注意的内容,提示框的颜色取决于指定的提示类型,只需在需要突出显示的单元格中添加以下任意代码

  • 蓝色信息框
<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>

在这里插入图片描述

  • 黄色警示框
<div class="alert alert-block alert-warning">
<b>Example:</b> Yellow Boxes are generally used to include additional examples or mathematical formulas.
</div>

在这里插入图片描述

  • 绿色“成功”信息框
<div class="alert alert-block alert-success">
Use green box only when necessary like to display links to related content.
</div>

在这里插入图片描述

  • 红色报警框
<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>

在这里插入图片描述

打印单元格内所有输出

考虑以下示例

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+612+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

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

相关文章:

  • 聊聊设计模式--简单工厂模式
  • 内网穿透工具之NATAPP(一)
  • 微信小程序案例2-3:婚礼邀请函
  • Databend 开源周报第 116 期
  • 【深度学习】使用Pytorch实现的用于时间序列预测的各种深度学习模型类
  • 基于Java的教室设备管理系统设计与实现(源码+lw+部署文档+讲解等)
  • C# Onnx Yolov8 Detect 印章 指纹捺印 检测
  • RabbitMQ (4)
  • ROS笔记之visualization_msgs-Marker的mesh_resource导入外部模型学习
  • 20.1 OpenSSL 字符BASE64压缩算法
  • php简单后门实现及php连接数据库
  • 模型对象CSS2DObject始终在画布的左上角(问题解决)
  • 视频上的水印文字如何去掉?
  • 【windows 脚本】netsh命令
  • MAYA教程之建模基础命令介绍
  • [NodeJS] 关于Buffer
  • 【node学习】协程
  • create-react-app做的留言板
  • Git初体验
  • Git同步原始仓库到Fork仓库中
  • JS+CSS实现数字滚动
  • JS题目及答案整理
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • node-glob通配符
  • Nodejs和JavaWeb协助开发
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 闭包,sync使用细节
  • 从0到1:PostCSS 插件开发最佳实践
  • 开发基于以太坊智能合约的DApp
  • 人脸识别最新开发经验demo
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​flutter 代码混淆
  • #、%和$符号在OGNL表达式中经常出现
  • (13)Hive调优——动态分区导致的小文件问题
  • (java)关于Thread的挂起和恢复
  • (javascript)再说document.body.scrollTop的使用问题
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (七)Java对象在Hibernate持久化层的状态
  • (四)库存超卖案例实战——优化redis分布式锁
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (五)关系数据库标准语言SQL
  • (转)关于多人操作数据的处理策略
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET Framework与.NET Framework SDK有什么不同?
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .sdf和.msp文件读取