Jupyter notebook是一款學(xué)習(xí)和科研的神奇,相信很多小伙伴已經(jīng)利用它在學(xué)術(shù)科研、研究開發(fā)的道路上收獲了便捷易用、可視直觀的優(yōu)點。但除了可以在瀏覽器編輯運行代碼、一系列暢爽的魔法命令外,jupyter還有眾多基于js開發(fā)的拓展插件能幫助我們事先更加自如和高效的使用,讓我們在科研的道路上如虎添翼、健步如飛。
1. 自動補全
(Hinterland)
在通常情況下jupyter中實現(xiàn)代碼補全需要主動按tab鍵,但有的時候會很期待jupyter可以實現(xiàn)如IDE一般的自動補全顯示,是需要輸入指令的頭部所有符合的指令變換躍然屏幕任君挑選。有了Hinterland之后,你就可以享受與其他流行的IDE(如PyCharm和VCS)一樣順滑的自動代碼補全了,便捷高效想到就能補到。
https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/nbextensions/hinterland/README.html
2. 單元格分置
(Split Cells Notebook)
從vim到sublime,各類編輯器都支持多窗口編輯、查看代碼。如果notebook可以實現(xiàn)這樣的功能就可以在寬屏顯示器上自由的施展拳腳了。notebook中split功能為我們貼心地準(zhǔn)備了這個功能,只需輕輕一點就可以將原先垂直順序排列的單元格變成水平排列,更好的查看與分析代碼和計算結(jié)果。通過該擴(kuò)展插件可以將Notebook的單元格分開,再將它們相鄰放置。
3. 插入常用代碼片
(Snippets)
在代碼中存在很多可以復(fù)用的代碼片,比如說每次程序開頭都需要import的一大堆包和一些常用的數(shù)據(jù)操作、繪圖指令。為了便捷的復(fù)用這些指令,Snippets為我們提供了一鍵插入代碼片段的功能,從此再也不用辛苦的輸入那些常用的指令,甚至copy-paste都免了,輕輕一點代碼出現(xiàn)!此擴(kuò)展插件為Notebook工具欄添加了一個下拉菜單,允許將代碼片段單元格輕松插入當(dāng)前Notebook中。
4. 折疊單元格
(Collapsible Headings)
代碼寫的太長、注釋寫的太多、整個note太亂了,又長又沒有清晰的結(jié)構(gòu)該如何是好呀?Collapsible Headings允許Notebook根據(jù)標(biāo)題來分隔的可折疊部分。如果Notebook中有很多不整潔的代碼,我們就可以折疊起來免除了反復(fù)滾動的煩惱,同時也為整個notebook帶來了整潔的視覺體驗。
5.幻燈片放映
(Slideshow)
Notebooks是教學(xué)和編寫可解釋代碼的有效工具。無論是給同學(xué)講解代碼還是給老板匯報進(jìn)展,一份動態(tài)、順滑、有代碼有圖片的報告總會帶來很好的效果。 Jupyter Notebooks可輕松轉(zhuǎn)換為幻燈片,將你的工作轉(zhuǎn)換為圖文并茂的生動報告,也許我們就不再需要PPT啦~
我們可以通過以下兩個方式來實現(xiàn):
· Jupyter的內(nèi)置幻燈片
在你的notebook中,可以通過工具欄導(dǎo)航到View → Cell Toolbar → Slideshow。
這時每個單元格頂部都會出現(xiàn)一個淺灰色條,您可以根據(jù)不同的五種特性自定義幻燈片,其中幻燈片是主要的呈現(xiàn)形式,還包括可以上下滑動的自幻燈片和浮動的碎片。
在設(shè)置完成后轉(zhuǎn)到notebook所在的目錄,執(zhí)行以下代碼:
幻燈片將顯示在本地8000端口。此外目錄中將生成.html文件,您也可以從那里雙擊訪問幻燈片。
· RISE(Reveal.js? plugin)
jupyter的問題在于無法再運行幻燈片的時候運行代碼,而RISE提供了邊演示便運行的解決方案。RISE是Reveal.js?—?Jupyter/IPython Slideshow Extension的首字母縮寫。 它利用reveal.js來運行幻燈片。這非常有用,因為它能在不必退出幻燈片的情況下運行代碼。 使用如下命令進(jìn)行安裝:
在適當(dāng)?shù)哪夸洶惭bJS和 CSS:
現(xiàn)在我們就會發(fā)現(xiàn)一個新的擴(kuò)展,上面寫著“Enter/Exit RISE Slideshow.”。
邊演示便運行真的很爽,是時候向老板展示你真正的實力了。
6.魔法工具包
(Jupyter Widgets)
Widgets是在jupyter里具有代表性的多事件python對象,通常作為滑塊、文本框等控件使用。Widgets可用于構(gòu)建交互式圖形用戶界面。 通過以下命令來安裝它們:
其中包含了一系列優(yōu)秀的可視化交互控件,從參數(shù)調(diào)整到文件遍歷,從顏色拾取到繪圖風(fēng)格變換,豐富且有用的小工具你一定會喜歡的。
https://github.com/jupyter-widgets/ipywidgets/blob/1223d4128aebe6c8831a034a73d1546a91f5138a/docs/source/examples/Widget%20Basics.ipynb
交互控件
這是IPython中widgets最簡單的使用方法。
交互功能(ipywidgets.interact)會自動為代碼和數(shù)據(jù)創(chuàng)建用戶界面(UI)控件。在數(shù)據(jù)探索過程中,通常要一次又一次地重新運行相同的單元,而每次都只會稍微改變下輸入?yún)?shù),這種致操作方式效率十分低下。理想解決方案是使用交互式控件,無需重寫或重新運行代碼即可更改輸入。 使用IPython widgets(ipywidgets),您可以使用一行代碼構(gòu)建交互式控件。該庫允許我們將Jupyter Notebooks從靜態(tài)文檔轉(zhuǎn)換為交互式儀表板,非常適合數(shù)據(jù)的探索和可視化數(shù)據(jù)。
我們可以使用@interact修飾器快速將任何普通函數(shù)轉(zhuǎn)換為交互式控件,例如改變x的取值:
快速循環(huán)遍歷所有圖像,而無需重新運行單元程序。 如果調(diào)試卷積神經(jīng)網(wǎng)絡(luò)并想要檢查網(wǎng)絡(luò)錯分類的圖像,這招就很管用。
Widgets在數(shù)據(jù)探索方面的用途是多種多樣的。 還可以用來便捷地分析兩列數(shù)據(jù)間的相關(guān)性,對于數(shù)據(jù)科學(xué)家和統(tǒng)計學(xué)家十分有用。
播放控件
Play widget能以一定速度按照整數(shù)序列來循環(huán)播放動畫,并可以通過滑塊的值來控制播放相關(guān)參數(shù)。
日期選擇器控件
日期選擇器控件Date picker可在Chrome和IE Edge中使用,但目前暫時無法在Firefox或Safari中使用,因為它們不支持HTML日期輸入字段。
顏色選擇控件
Color picker 可以調(diào)出調(diào)色板,供你選擇最中意的顏色:
表格控件
表格控件Tab可以構(gòu)建類似excel的表格,便于展示和可視化數(shù)據(jù):
Widgets for Plots繪圖控件
交互式控件對于選擇數(shù)據(jù)繪制特別有用,我們同樣可以使用@interact修飾器將數(shù)據(jù)可視化函數(shù)轉(zhuǎn)為控件:
這里,cufflinks+plotly的組合用來實現(xiàn)交互式繪圖。如果繪圖的更新速度有點慢,我們可以使用@interact_manual,手動點擊按鈕來進(jìn)行更新。
Qgrid
Qgrid主要關(guān)注DataFrame對象。 它使用SlickGrid在Jupyter notebook中渲染pandas DataFrame。 這使您可以使用直觀的滾動、排序和篩選控件來瀏覽DataFrame,還可以通過雙擊單元格來編輯DataFrame,可以便捷高效的查看dataframe中的數(shù)據(jù):
7.視頻/PDF/url插件
使用IPython的顯示模塊,您可以輕松地將URLs、pdf和視頻嵌入到您的Jupyter Notebooks中。
顯示pdf,組會講論文神器呀:
再來個視頻佐證自己的觀點吧:
8. Jupyter主題
原生的白色主題太扎眼了,好想用暗色系的主題保護(hù)眼睛,安心擼代碼?就像你用的IDE概要或主題設(shè)置? 安裝jupyterthemes就可解你的燃眉之急。
Jupyter也有同樣的功能,這些主題還可以增強(qiáng)了代碼的顯示, 可以定制自己喜歡的字體字號和背景顏色。雖然主題數(shù)量不多,但用起來相當(dāng)不錯,以后也會越來越多。
寫在最后
如果你對這些拓展功能躍躍欲試?yán)玻蔷挖s快給你的jupyter添加想要的插件吧!插件安裝連接請參考:
https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/install.html
還可以發(fā)掘源碼進(jìn)行學(xué)習(xí),他日寫出自己中意的插件:
https://github.com/ipython-contrib/jupyter_contrib_nbextensions/tree/master/src/jupyter_contrib_nbextensions/nbextensions
jupyterlab插件:
https://jupyterlab.readthedocs.io/en/stable/user/extensions.html
-
代碼
+關(guān)注
關(guān)注
30文章
4671瀏覽量
67765 -
控件
+關(guān)注
關(guān)注
0文章
155瀏覽量
16885 -
編輯器
+關(guān)注
關(guān)注
1文章
797瀏覽量
30928
原文標(biāo)題:那些讓你如虎添翼的Jupyter Notebooks進(jìn)階插件神器
文章出處:【微信號:thejiangmen,微信公眾號:將門創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論