對全世界的 Python 高手而言,Jupyter Notebook 是目前最流行的程式設計環境,尤其是對那些從事機器學習和資料科學的人而言。數月前我第一次開始認真研究機器學習時發現了 Jupyter Notebook。剛開始,我因這一切可以在我的瀏覽器中執行而感到驚訝和開心。但是,不久後我就失望了,老套的 Jupyter Notebook 的介面非常基礎,缺乏很多有用的功能。那時候我就決定去尋找一些 Jupyter Notebook 的駭客技術。
在這篇文章中,我展示了一些 Jupyter Notebook 的附件/擴充套件,以及一些能夠增強 Jupyter Notebook 和提高生產力的命令。簡言之,就是要增強你的 Jupyter Notebook。
如果你按照下面的指示去做,你的 Jupyter Notebook 會擁有下面這些令人驚歎的功能(如果你願意,還能獲得更多):
能夠動態切換多個 Conda 環境,而無需重啟 Jupyter Notebook。
一鍵點選生成目錄(你會喜歡這個功能)。
一個很有用的彈出式便籤(這是我最喜歡的功能),無需改變原始筆記本中任何地方就可以把玩、測試你的程式碼。
程式碼單元內的程式碼摺疊。很疑惑為啥這個不是 Jupyter Notebook 的固有功能。
一鍵程式碼單元隱藏,這是一個重要的功能,當你需要透過視覺化的方式展示資料時,人們並不會關心你的程式碼,而是你的圖表。
一個超級酷的變數檢查器。
用於 Markdown 單元的拼寫檢查器。
用於深夜編碼會話的禪意黑模式(ZenMode)。
能夠動態增加常用 python 結構(例如 List comprehension)的 Code Snippets 選單。
最後這個絕對是最好的功能——舒緩漂亮的深夜藍配色方案,拯救你的眼睛!
是時候增強我們的 jupyter notebook 了!
炫酷的深藍午夜主題
首先,要保證我們的 notebook 有一個漂亮的黑色主題,這樣我們的眼睛就會舒服一些。如果你每天要工作很長時間,那固有的白色背景會讓你眼睛很難受。無論如何,一旦你換成了黑色,就永遠不會想換回來。
使用下面的命令安裝黑色的主題,
# Kill and exit the Notebook server
# Make sure you are in the base conda environment
conda activate base# install jupyterthemes
pip install jupyterthemes
# upgrade to latest version
pip install --upgrade jupyterthemes
主題包安裝和更新好之後,執行下面的命令,將原來白色主題的 Jupyter Notebook 換成一款深藍午夜主題。你的眼睛會喜歡這款主題的。
# Enable Dark Mode
jt -t onedork -fs 95 -altp -tfs 11 -nfs 115 -cellw 88% -T
Conda 環境自由切換
接下來,看一下我們是否已經把 Anaconda 中建立的所有定製環境作為核心新增在了 Jupyter Notebook 中。這樣我們就能簡單地利用 Kernel 按鈕切換環境。換核的時候不需要重啟 notebook。
假設你的 Anaconda 環中有兩個自定義的環境 my_NLP 和 gym。按照下面的步驟將這些新增到你的 Jupyter Notebook 中。
# Stop and exit your Jupyter Notebook server first
# Activate your environment in the terminal
conda activate my_NLP
# Install the IPython Kernel
pip install ipykernel
# Link your environment with Jupyter
python -m ipykernel install --user --name=my_NLP# Repeat steps for the other environment, gym.
conda activate gym
pip install ipykernel
python -m ipykernel install --user --name=gym
現在開啟你的 Jupyter Notebook,找到 kernel 按鈕下的 Change Kernel 選項,接下來就是見證奇蹟的時刻:所有的核都被列舉出來了,你可以透過簡單地點選來啟用一個服務核。
這便是最新新增的 Kernel 的展現形式。請注意這款舒緩的午夜藍主題。
其他炫酷功能
關於我在上面提及的其他炫酷功能,需要安裝一些叫做 nbextensions for Jupyter Notebooks 的東西。
安裝地址:https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/install.html
安裝 nbextensions 是很容易的,簡單地遵循下面的步驟就行:
# Stop and exit your Jupyter Notebook server
# Make sure you are in the base environment
conda activate base# Install the nbextensions
pip install jupyter_contrib_nbextensions
# Install the necessary JS and CSS files
jupyter contrib nbextension install --system
啟動 Jupyter notebook 服務,你可以在起始頁看到第四個叫做 Nbextensions 的選項。點選這個選項,然後就可以看到極妙的功能集,這些都是你一直希望在 Jupyter Notebooks 中擁有的。
Nbextensions 標籤!
正如你在上面看到的,這個擴充套件列表十分龐大,甚至第一眼看上去有些嚇人。但並不是所有的都有用,下面是我用到的一些功能:
Table of Contents(2):單擊生成整個筆記本的目錄,不同的 section 都有對應的超連結。
Scratchpad:在我看來絕對是最好的擴充套件了。這是一個你可以在裡面做程式碼實驗的獨立空間,不會干擾筆記本中的其他部分。
Codefolding :程式碼摺疊,這個不需要做過多的解釋。
Hide Input All:隱藏所有的程式碼單元,同時保持所有的輸出和 markdown 單元可見。如果你要向非技術人員解釋你的結果,那麼這就會是一個很有用的功能。
Variable Inspector:將你從除錯的憂傷中拯救出來,這與 Spyder IDE 中的變數檢查視窗有些類似。
Spellchecker:對 markdown 單元中的內容進行拼寫檢查。
Zenmode:移除掉螢幕中雜亂無關的內容,以便你能夠聚焦於重要的東西上,例如程式碼。
Snippets Menu:從 list comprehension 到 pandas 以及它們之間的所有常用程式碼片段的一個很酷的集合。這是最好的部分?你可以修改視窗的小部件來新增你自己的定製片段。
上述列表包含了我常用的擴充套件功能,但是我鼓勵你去嘗試一下其餘的擴充套件功能。一些有意思的功能包括 ScrollDown、table_beautifier 以及 Hinterland。
Snippet 擴充套件和 Table of Contents generation 擴充套件在工作中同時使用。
Scratchpad 擴充套件
原文連結:https://towardsdatascience.com/supercharging-jupyter-notebooks-e22f5ad7ca18