Jupyter Notebook介面也可以如此炫酷?有人把Notebook玩出了新花樣

機器之心發表於2019-07-23

對全世界的 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 選項,接下來就是見證奇蹟的時刻:所有的核都被列舉出來了,你可以透過簡單地點選來啟用一個服務核。

Jupyter Notebook介面也可以如此炫酷?有人把Notebook玩出了新花樣

這便是最新新增的 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 中擁有的。

Jupyter Notebook介面也可以如此炫酷?有人把Notebook玩出了新花樣

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。

Jupyter Notebook介面也可以如此炫酷?有人把Notebook玩出了新花樣

Snippet 擴充套件和 Table of Contents generation 擴充套件在工作中同時使用。

Jupyter Notebook介面也可以如此炫酷?有人把Notebook玩出了新花樣

Scratchpad 擴充套件

原文連結:https://towardsdatascience.com/supercharging-jupyter-notebooks-e22f5ad7ca18

相關文章