1 簡介
無論是jupyter notebook
還是jupyter lab
,都可以使用ipython
中的眾多自帶魔術命令來實現豐富的輔助功能,諸如%time
之類的。
這些都已經是老生常談的知識沒什么好說的,但我們今天要給大家介紹的,則是一些實用的基於第三方拓展的魔術命令,從而極大程度上擴展jupyter
的功能。

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
變量:

更多示例見https://github.com/transfluxus/magic_markdown
。
2.2 用ipython-sql執行sql查詢
使用pip install ipython-sql
完成安裝后,我們可以直接在jupyter
單元格中完成數據庫的連接及查詢:

更多使用方法見https://pypi.org/project/ipython-sql/
。
2.3 用jupyter_spaces創建命名子空間
使用pip install jupyter_spaces
安裝完成后,我們就可以參考下圖來創建和移除不同的命名子空間,這在調試代碼時很受用:

更多使用方法見https://github.com/davidesarra/jupyter_spaces
。
2.4 用blackcellmagic實現代碼美化
通過pip install blackcellmagic
之后,我們可以按照下圖的方式使用blackcellmagic
魔術命令,從而實現代碼的格式化,且格式化時不會執行對應單元格內的代碼,非常方便:

更多使用方法見https://github.com/csurfer/blackcellmagic
。
2.5 用watermark記錄系統、版本等信息
接下來要介紹的watermark
,我在之前的一期文章中也介紹過,可以幫助我們記錄諸如系統硬件信息、導入的包的版本、時間戳等信息,幫助我們日常管理程序。
同樣利用pip install watermark
進行安裝之后,我們就可以利用%watermark
命令記錄下很多信息:

更多使用方法見https://github.com/rasbt/watermark/blob/master/docs/watermark.ipynb
。
2.6 用heat對代碼執行耗時分布進行可視化
通過pip install py-heat-magic
之后,我們可以使用%%heat
魔術命令對單元格內代碼的執行耗時分布進行熱圖可視化,更加直觀地找到性能待提升的代碼塊,就像下圖示例那樣:

以上就是本文的全部內容,歡迎在評論區發表你的感想與見解。