安裝
對於初學者,最簡單的方法是安裝 Anaconda,因爲它自帶了 Jupyter Notebook。對於 Anaconda 的使用方法,可參考《致Python初學者們 - Anaconda入門使用指南》。
如果在 conda 環境中,可以使用如下命令安裝:
conda install jupyter notebook
或者直接通過 pip 安裝:
pip install jupyter notebook
更多的安裝說明可參考Jupyter官網。
需要注意的是,對Python來說jupyter使用的是系統默認的Python環境,如果有 Anaconda的話會優先使用 Anaconda環境,如果需要更改Jupyter使用的Python環境,可參考搭建Python jupyter環境
運行
在終端中輸入
jupyter notebook
此時你的 Web 瀏覽器被自動打開,顯示文件home目錄。通過點擊右上角的new
可以創建新文檔。
而關閉 notebook 文檔可以通過選擇文件名前的複選框後,點擊Shutdown
按鈕實現。如果要關閉整個服務,則在原來的終端中按Control + C
兩次。
界面
Notebook 文檔是由一系列單元(Cell)構成,主要有兩種形式的單元:
代碼單元:這裏是你編寫代碼的地方,通過按 Shift + Enter 運行代碼,其結果顯示在本單元下方。代碼單元左邊有 In [ ]: 這樣的序列標記,方便人們查看代碼的執行次序。
Markdown 單元:在這裏對文本進行編輯,採用 markdown 的語法規範,可以設置文本格式、插入鏈接、圖片甚至數學公式。同樣使用 Shift + Enter 運行 markdown 單元來顯示格式化的文本。
類似於 Linux 的 Vim 編輯器,在 notebook 中也有兩種模式:
編輯模式:編輯文本和代碼。選中單元並按 Enter 鍵進入編輯模式,此時單元左側顯示綠色豎線。
命令模式:用於執行鍵盤輸入的快捷命令。通過 Esc 鍵進入命令模式,此時單元左側顯示藍色豎線。
如果要使用快捷鍵,首先按 Esc 鍵進入命令模式,然後按相應的鍵實現對文檔的操作。比如切換成代碼單元(Y
)或 markdown 單元(M
),或者在本單元的下方增加一單元(B
)。查看所有快捷命令可以按H。
快捷鍵
除命令模式與代碼模式和單元類型的切換外,常用的快捷鍵還有:
Control + Enter
: 執行單元格代碼Shift + Enter
: 執行單元格代碼並且移動到下一個單元格Option + Enter
: 執行單元格代碼,新建並移動到下一個單元格Command + S
:保存你的文檔,默認以ipynb格式,保存在home目錄下D,D
: 刪除選中的單元A
: 在上方插入新單元B
: 在下方插入新單元
數學公式編輯
在文本行中插入數學公式,使用一對 $ 符號。比如下面公式表示 z=x/y:
$$ z = \frac{x}{y} $$
如何在 notebook 中使用 LaTeX,可參考 A Primer on Using LaTeX in Jupyter Notebooks
幻燈片製作
既然Jupyter Notebook 擅長展示數據分析的過程,除了通過網頁形式分享外,當然也可以將其製作成幻燈片的形式。這裏有一個幻燈片示例供參考,其製作風格簡潔明晰。
那麼如何用 Jupyter Notebook 製作幻燈片呢?首先在 notebook 的菜單欄選擇View > Cell Toolbar > Slideshow
,這時在文檔的每個單元右上角顯示了 Slide Type 的選項。通過設置不同的類型,來控制幻燈片的格式。有如下5中類型:
- Slide:主頁面,通過按左右方向鍵進行切換。
- Sub-Slide:副頁面,通過按上下方向鍵進行切換。
- Fragment:一開始是隱藏的,按空格鍵或方向鍵後顯示,實現動態效果。
- Skip:在幻燈片中不顯示的單元。
- Notes:作爲演講者的備忘筆記,也不在幻燈片中顯示。
編寫好幻燈片形式的 notebook後使用nbconvert
進行演示,在終端輸入:
jupyter nbconvert notebook.ipynb --to slides --post serve
瀏覽器會自動打開相應的幻燈片。
魔術關鍵字
魔術關鍵字(magic keywords),正如其名,是用於控制 notebook 的特殊的命令。它們運行在代碼單元中,以 % 或者 %% 開頭,前者控制一行,後者控制整個單元。
比如,要將本地Python代碼添加到當前cell中,則可以使用%load file.py
;要運行本地Python代碼,則可以使用%run file.py
;要得到代碼運行的時間,則可以使用 %timeit
;如果要在文檔中顯示 matplotlib 包生成的圖形,則使用 % matplotlib inline
;如果要做代碼調試,則使用%pdb
。
更詳細的清單請參考 Built-in magic commands