Jupyter Notebook還有魔術(shù)命令?太好使了
在Jupyter Notebooks中,Magic commands(以下簡(jiǎn)稱(chēng)魔術(shù)命令)是一組便捷的功能,旨在解決數(shù)據(jù)分析中的一些常見(jiàn)問(wèn)題,可以使用%lsmagic 命令查看所有可用的魔術(shù)命令:
魔術(shù)命令通常分為兩種:
- 行魔術(shù)(line magics),其前綴為單個(gè) % 字符,作用于單行輸入
- 單元魔術(shù)(cell magics),其前綴為雙重 %%,作用于多行輸入
以下列舉一些在常見(jiàn)任務(wù)中用的較多的魔術(shù)命令,一起看看吧。
%matplotlib notebook
%matplotlib inline 函數(shù)用于在Jupyter notebook中呈現(xiàn)靜態(tài)的matplotlib圖表,若將 inline 替換為 notebook 可以得到可縮放和調(diào)整大小的圖表,確保在導(dǎo)入matplotlib庫(kù)之前調(diào)用該函數(shù)。
%run
%run 函數(shù)用于在Jupyter Notebook中運(yùn)行一個(gè)Python腳本。
% pastebin
%pastebin 命令將代碼上傳到Pastebin并返回URL。Pastebin是一個(gè)在線內(nèi)容托管服務(wù),可以在其中存儲(chǔ)純文本,如源代碼片段,然后可以與他人共享URL(與GitHub Gist類(lèi)似)。
比如存在一個(gè)Python文件 file.py,內(nèi)容如下:
#file.py
def foo(x):
return x
在Jupyter Notebook中使用 %pastebin 會(huì)生成一個(gè)Pastebin URL:
%debug
如果在運(yùn)行代碼單元格時(shí)出現(xiàn)異常,可以在新行中鍵入 %debug 并運(yùn)行它。這將打開(kāi)一個(gè)交互式調(diào)試環(huán)境,將用戶帶到異常發(fā)生的位置,還可以檢查程序中變量的值,并執(zhí)行操作,要退出調(diào)試器,可以按 q:
%%writefile
%%writefile 將單元格的內(nèi)容寫(xiě)入文件。如該例,代碼將被寫(xiě)入一個(gè)名為 foo.py 的文件,并保存在當(dāng)前目錄中:
%%latex
%%latex 函數(shù)將單元格的內(nèi)容呈現(xiàn)為L(zhǎng)aTeX。這對(duì)于在單元格中編寫(xiě)數(shù)學(xué)公式和方程式肥腸有用:
%%time
使用 %%time 來(lái)獲取運(yùn)行代碼單元格所用的時(shí)間:
%whos
查看已定義的變量列表,可以使用 %whos 或 %who_ls:
到這里一些常用的魔術(shù)命令就介紹完畢,感興趣的可以將每個(gè)magic方法拿出來(lái)試試。但文章到這沒(méi)結(jié)束,想著繼續(xù)補(bǔ)充一些朱皮特相關(guān)的其他操作。
pprint
如果希望打印的數(shù)據(jù)結(jié)構(gòu)的清晰且美觀,pprint 是一個(gè)很好的模塊(不僅在jupyter,終端啥的俺也常用),在打印字典數(shù)據(jù)時(shí),尤其有用,如下示例,對(duì)比演示如何使用 print 和 pprint 來(lái)顯示輸出:
突出顯示
我們可以在Jupyter中使用提示/注釋框來(lái)突出顯示一些重要的內(nèi)容或需要引起注意的內(nèi)容,提示框的顏色取決于指定的提示類(lèi)型,只需在需要突出顯示的單元格中添加以下任意代碼:
(1) 藍(lán)色信息框
<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>
(2) 黃色警示框
<div class="alert alert-block alert-warning">
<b>Example:</b> Yellow Boxes are generally used to include additional examples or mathematical formulas.
</div>
(3) 綠色“成功”信息框
<div class="alert alert-block alert-success">
Use green box only when necessary like to display links to related content.
</div>
(4) 紅色報(bào)警框
<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>
打印單元格內(nèi)所有輸出
考慮以下示例:
In [1]: 10+5
11+6
Out [1]: 17
這是一個(gè)普通單元格的屬性,只有最后一個(gè)輸出會(huì)被打印,若想打印其他程序輸出,除了挨個(gè)進(jìn)行 print() ,還可以通過(guò)在jupyter頂部添加以下片段來(lái)打印所有輸出:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
然后可得到如下結(jié)果:
In [1]: 10+5
11+6
12+7
Out [1]: 15
Out [1]: 17
Out [1]: 19
若想恢復(fù)默認(rèn)設(shè)置:
InteractiveShell.ast_node_interactivity = "last_expr"
批量注釋
Ctrl/Cmd + / 自動(dòng)注釋掉單元格中選定的行, 再次按住該組合鍵將取消同一行代碼的注釋。
誤刪恢復(fù)
- 如果刪除了單元格的內(nèi)容,可以通過(guò)按下 CTRL/CMD+Z 恢復(fù)它
- 如果需要恢復(fù)整個(gè)已刪除的單元格,按 ESC+Z 或選擇 EDIT > Undo Delete Cells
以上就是本期的全部?jī)?nèi)容,期待點(diǎn)贊在看,我是啥都生,下次再見(jiàn)!