Jupyter Notebook 是所有開發者共享工作的神器,它為共享 Notebooks 提供了一種便捷方式:結合文字、程式碼和圖更快捷地將資訊傳達給受眾。目前,Jupyter Notebook 已經應用於資料分析和資料科學等領域。
然而,大部分開發者僅僅瞭解其皮毛。開發者使用 Jupyter Notebook 的基本功能來寫 Python 程式碼、展示圖。但是你們知道 Jupyter 中還有大量自定義功能嗎?這些很酷的選項可以幫助你使用 Jupyter notebook 更高效地寫程式碼、展示圖。
本文將介紹強化 Jupyter Notebook 功能的 4 種方法。
1. 執行 Shell 命令
在技術或程式設計文字中,shell 表示使用文字與計算機進行互動的方式。最流行的 Unix shell 是 Bash(Bourne Again SHell),Bash 是 Linux 機器上終端預設的 shell。
在使用 Python 工作時,你會經常在寫 Python 程式碼和使用 shell 命令之間來回切換。例如,你想使用 Python 讀取磁碟中的某份檔案,而這需要你確認檔名。通常情況下,你需要在終端輸入 ls,獲得當前目錄的所有檔案和資料夾列表。但這樣來回切換非常繁瑣低效。
很炫酷的是,Jupyter 能夠執行 Shell 命令,你甚至無需離開瀏覽器。只需要在 shell 命令前加一個感嘆號!,Jupyter 會將其轉換為 Bash。在任一命令前加感嘆號!,它們就可以在 Python Jupyter Notebook 中執行。
# Listing folder contents
>>> !ls
mynotebook.ipynb stuff.txt# Getting the current directory
>>> !pwd
/home/george/github/project_1# Printing from Bash
>>> !echo "Pizza is delicious!"
Pizza is delicious!
我們還可以將 shell 命令的輸出分配給 Python 變數,如下所示:
# Getting the current directory.
# The variable "X" now contains ["/home/george/github/project_1"]
X = !pwd
2. 更換主題
很多文字編輯器和程式設計 IDE 都有自定義主題。開發者最喜歡的主題之一是暗黑主題(如 monaki),因為對於整天盯著螢幕的開發者而言,暗黑主題看起來比較舒適。幸運的是,Jupyter 有一個外掛,允許使用者自行選擇主題。
要想安裝該外掛,你只需在終端中執行以下 pip 命令:
pip install jupyterthemes
執行以下命令,可得到可用的主題列表:
jt -l
截至本文寫作時,可選擇的主題包括:
chesterish
grade3
gruvboxd
gruvboxl
monokai
oceans16
onedork
solarizedd
solarizedl
檢視這些主題,如下圖所示,我們擁有大量不同的顏色選擇。
solarizedd(左),gruvboxl(中),grade3(右)。
3. Notebook 擴充套件外掛
Jupyter Notebook 擴充套件外掛(nbextensions)是一些 JavaScript 模組,你可以使用它們強化 Notebook 的功能以及使用。擴充套件外掛本質上修改了 Jupyter UI,以實現更穩健的功能。
我們首先透過 pip 安裝 nbextensions:
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install
安裝完成後,啟動 Jupyter。你將看到一個新選項——NBextensions。選擇它之後,你會看到大量 Jupyter Notebook 擴充套件外掛選項。
透過快速搜尋,你可以檢視這些擴充套件外掛的功能。下面我將介紹幾個最重要的外掛。
Table of Contents
正如其名稱所描述的那樣,Table of Contents 基於 notebook 中 # 建立的標題自動生成目錄。例如,我在 notebook 中建立了以下標題:
# This is a super big title
## This is a big title
### This is a medium title
#### This is a small title
則左側會生成目錄。雙擊標題,可連結至對應章節內容。當 notebook 規模很大,選項很多時,這個功能非常方便!
Hinterland
程式碼補全是大部分 IDE 都具備的常見功能,比如 PyCharm。開發者喜歡這個功能,因為這使得他們的工作更加簡單,開發者無需記住每一個命令,IDE 會準備好一切。
Hinterland 可在 Jupyter Notebook 內完成程式碼補全。在鍵入過程中,你會看到一些程式碼補全建議。尤其是當你搜尋外部庫的命令時(示例如下所示)。這簡直太方便了!
拆分單元格(Split Cells)
拆分單元格允許開發者並排檢視 2 個單元格。當你有兩個相關單元格時(比如描述及其對應的圖示),這個功能非常方便。
4. 使用 Qgrid 探索 Dataframes
最後一站是 Qgrid,該工具允許開發者在不使用複雜 Pandas 程式碼的情況下,探索和編輯資料幀。Qgrid 可在 Jupyter notebook 中以互動的方式渲染 pandas 資料幀,這樣你就可以執行一些直觀的控制,如滾動、排序和篩選,以及雙擊單元格編輯資料幀。
我們首先安裝 Qgrid:
pip install qgrid
jupyter nbextension enable --py --sys-prefix widgetsnbextension
要想使用 Qgrid 渲染資料幀,開發者只需匯入 Qgrid,然後將資料幀輸入到 show_grid 函式:
import qgrid
qgrid_widget = qgrid.show_grid(df, show_toolbar=True)
qgrid_widget
這樣,你可以對資料幀執行大量互動式操作:
新增和刪除行;
篩選行;
編輯單元格。
將更多引數輸入 show_grid 函式可以執行其他互動式操作。關於 Qgrid 的全部功能,參見:https://github.com/quantopian/qgrid。
以上就是強化 Jupyter Notebook 功能的 4 種方法。
原文連結:https://towardsdatascience.com/4-awesome-tips-for-enhancing-jupyter-notebooks-4d8905f926c5