1 简介

  无论是jupyter notebook还是jupyter lab,都可以使用ipython中的众多自带魔术命令来实现丰富的辅助功能,诸如%time之类的。

  这些都已经是老生常谈的知识没什么好说的,但我们今天要给大家介绍的,则是一些实用的基于第三方拓展的魔术命令,从而极大程度上扩展jupyter的功能。

图1

2 jupyter中实用的第三方魔术命令拓展

  在jupyter中使用外部的拓展魔术命令,需要先像安装常规的Python库一样用pip等进行安装,再在使用前执行一次%load_ext 拓展名称或者import 拓展名称,之后在当前kernel还保持活跃的情况下,就可以随意在单元格内使用对应的拓展魔术命令。

  下面我们来介绍一些常用的第三方魔术命令拓展。

2.1 用magic_markdown玩转markdown

  虽然在jupyter中单元格有自带的markdown模式,但其功能比较有限,而利用magic_markdown,我们可以实现更多惊人的功能。

  使用pip install magic-markdown完成安装之后,我们就可以使用魔术命令%%mmd按照下面的格式实现在markdown中嵌入Python变量:

图2

  更多示例见https://github.com/transfluxus/magic_markdown

2.2 用ipython-sql执行sql查询

  使用pip install ipython-sql完成安装后,我们可以直接在jupyter单元格中完成数据库的连接及查询:

图3

  更多使用方法见https://pypi.org/project/ipython-sql/

2.3 用jupyter_spaces创建命名子空间

  使用pip install jupyter_spaces安装完成后,我们就可以参考下图来创建和移除不同的命名子空间,这在调试代码时很受用:

图4

  更多使用方法见https://github.com/davidesarra/jupyter_spaces

2.4 用blackcellmagic实现代码美化

  通过pip install blackcellmagic之后,我们可以按照下图的方式使用blackcellmagic魔术命令,从而实现代码的格式化,且格式化时不会执行对应单元格内的代码,非常方便:

图5

  更多使用方法见https://github.com/csurfer/blackcellmagic

2.5 用watermark记录系统、版本等信息

  接下来要介绍的watermark,我在之前的一期文章中也介绍过,可以帮助我们记录诸如系统硬件信息、导入的包的版本、时间戳等信息,帮助我们日常管理程序。

  同样利用pip install watermark进行安装之后,我们就可以利用%watermark命令记录下很多信息:

图6

  更多使用方法见https://github.com/rasbt/watermark/blob/master/docs/watermark.ipynb

2.6 用heat对代码执行耗时分布进行可视化

  通过pip install py-heat-magic之后,我们可以使用%%heat魔术命令对单元格内代码的执行耗时分布进行热图可视化,更加直观地找到性能待提升的代码块,就像下图示例那样:

图7


  以上就是本文的全部内容,欢迎在评论区发表你的感想与见解。

jupyter中那些神奇的第三方拓展魔术命令的更多相关文章

  1. [翻译svg教程]Path元素 svg中最神奇的元素!

    先看一个实例 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999 ...

  2. 在Swift项目中使用cocoaPods导入第三方OC库

    首先保证你的项目是基于cocoaPods的,并且是通过XX.xcworkspace打开的.cocoaPods安装教程(Xcode6以上) 下面就第三方库MBProgressHUD来讲解如何在Swift ...

  3. iOS 如何在一个已经存在多个project的workspace中引入cocoapods管理第三方类库

    一种新的第三方库管理工具:Carthage 如何使用Carthage管理iOS依赖库 Podfile Syntax Reference v1.1.0.rc.3 https://guides.cocoa ...

  4. Android 项目中常用到的第三方组件

    项目中常用到的第三方组件 1 社会化分享ShareSDK-Core-2.5.9.jarShareSDK-QQ-2.5.9.jarShareSDK-QZone-2.5.9.jarShareSDK-Sin ...

  5. Groovy中那些神奇注解之InheritConstructors

    上一篇:Groovy中那些神奇注解之ToString 写完ToString,本来想今天就写到这了,突然觉得InheritConstructors注解实在也是个神器,写起来也没多少字,还是写了吧. In ...

  6. Groovy中那些神奇注解之ToString

    继续上一篇:Groovy中那些神奇注解之Memoized 这篇就讲讲@groovy.transform.ToString这个注解,这注解太熟悉了,熟悉到让人一看就知道是干吗的,不就是把Bean转在St ...

  7. 命令行窗口中使用pip安装第三方库成功之后,在pycharm中仍不能使用

    在学习廖老师的Python教程的时候,遇到命令行窗口中使用pip安装第三方库成功之后,在pycharm中仍不能使用的情况, 这种情况可能是由于在本地安装了多个Python版本的缘故(只是可能的情况之一 ...

  8. 在 jupyter 中添加菜单和自动完成功能

    在 jupyter 中添加菜单和自动完成功能 参考文档http://www.360doc.com/content/17/1103/14/1489589_700569828.shtmlhttp://to ...

  9. java中的神奇"this"

    java中的神奇"this",神奇的原因事它能不用new就可以直接创造一个对象出来,后来研究发现,其实java的“this”使用时,也是"new"了一个当前的对 ...

随机推荐

  1. WPF 应用 - 拖拽窗体、控件

    1. 拖拽窗体 使用 System.Windows.Window 自带的 DragMove() 方法即可识别窗体拖动. DragMove(); 2. 拖拽控件:复制.移动控件 <Grid> ...

  2. MySQL入门(4)——操作数据表

    MySQL入门(4)--操作数据表 创建数据库 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据库名 [(create_definition,...)] [tab ...

  3. sqlmap在https下的一种错误 - ssl连接失败

    在昨天与师傅的交流中师傅考了我一个问题,在用sqlmap跑的时候遇到ssl爆红该怎么办,因为在实战中并没有遇到过这种情况,所以今天补一下知识. 首先查询了ssl的概念,通俗来说,如果一个网站没有安装s ...

  4. 学习Python的书籍——入门到进阶

    入门读物 <Python基础教程>(Beginning Python From Novice to Professional) <Python学习手册>(Learning Py ...

  5. Spring源码之注解扫描Component-scan

    本文主要介绍Spring的component-scan标签,了解spring是如何实现扫描注解进行bean的注册,主要实现实在 NamespaceHandler, NamespaceHandlerSu ...

  6. (一)SpringBoot启动过程的分析-启动流程概览

    -- 以下内容均基于2.1.8.RELEASE版本 通过粗粒度的分析SpringBoot启动过程中执行的主要操作,可以很容易划分它的大流程,每个流程只关注重要操作为后续深入学习建立一个大纲. 官方示例 ...

  7. 【python小示例】简易彩票中奖模拟

    咱自己写个彩票程序,成功亏掉3个亿 今天突发奇想,自己设计一个小程序,模拟彩票中奖,看看如果自己有个彩票公司,能挣钱吗?代码如下: # -*- utf-8 -*- """ ...

  8. vue实现日历

    vue实现日历 之前在上家公司做过一个公司人员考勤的东西,里面需要用到日历,当时自己用vue随便写了一个,比较简单 下面代码是删掉了其他功能的代码,只留下日历部分 <template> & ...

  9. Nacos概述及安装

    Nacos是什么? 在Spring Cloud中我们使用eureka.consul等做为服务注册中心,使用Spring Cloud Config做为配置中心.而Spring Cloud中,也可以使用n ...

  10. Spring(七篇)

    (一)Spring 概述 (二)Spring Bean入门介绍 (三)Spring Bean继续入门 (四)Spring Bean注入方试 (五)Spring AOP简述 (六)Spring AOP切 ...