1. 程式人生 > >Jupyter Notebook 快速入門(下)

Jupyter Notebook 快速入門(下)

這兩天分享的 Jupyter Notebook 快速入門文章,比較基礎,只涉及了基本功能介紹和演示。後面再找機會分享其他高階用法。

從上一篇文章中,我們發現 Jupyter notebook 的基本功能就可以支援完成許多事情。不過它背後的功能和選項並不止於此。本文將進一步介紹一些有用的操作。

單元格操作

高階單元格操作,將讓編寫 notebook 變得更加方便。舉例如下:

  • 如果想刪除某個單元格,可以選擇該單元格,然後依次點選Edit -> Delete Cell
  • 如果想移動某個單元格,只需要依次點選Edit -> Move cell [up | down]
  • 如果想剪貼某個單元測,可以先點選Edit
     -> Cut Cell,然後在點選Edit -> Paste Cell [Above | Below]
  • 如果你的 notebook 中有很多單元格只需要執行一次,或者想一次性執行大段程式碼,那麼可以選擇合併這些單元格。點選Edit -> Merge Cell [Above | below]

記住這些操作,它們可以幫助你節省許多時間。

Markdown 單元格高階用法

我們再來看看 Markdown 單元格。雖然它的型別是 markdown,但是這類單元格也接受 HTML 程式碼。這樣,你就可以在單元格類實現更加豐富的樣式,新增圖片,等等。例如,如果想在 notebook 中新增 Jupyter 的 logo,將其大小設定為 100px x 100px,並且放置在單元格左側,可以這樣編寫:

<img src="http://blog.jupyter.org/content/images/2015/02/jupyter-sq-text.png"
style="width:100px;height:100px;float:left">

計算該單元格之後,會出現這樣的結果:

計算該單元格之後,會出現這樣的結果

另外,markdown 單元格還支援 LaTex 語法。例如:

$$\int_0^{+\infty} x^2 dx$$

計算上述單元格,將獲得下面的 LaTex 方程式:

LaTex 方程式

匯出功能

notebook 還有一個強大的特性,就是其匯出功能。可以將 notebook 匯出為多種格式:

  • HTML
  • Markdown
  • ReST
  • PDF(通過 LaTeX)
  • Raw Python

匯出 PDF 功能,可以讓你不用寫 LaTex 即可建立漂亮的 PDF 文件。你還可以將 notebook 作為網頁釋出在你的網站上。甚至,你可以匯出為 ReST 格式,作為軟體庫的文件。

Matplotlib 整合

如果你用 Python 繪製過圖形,那你肯定知道 matplotlib。Matplotlib 是一個用於建立漂亮圖形的 Python 庫,結合 Jupyter notebook 使用時體驗更佳。

要想在 Jupyter notebook 中使用 matplotlib,需要告訴 Jupyter 獲取 matplotlib 生成的所有圖形,並將其嵌入 notebook 中。為此,需要計算:

%matplotlib inline

譯註:要想執行成功,需要先pip install matplotlib

執行這個指令可能要花個幾秒鐘,但是在 notebook 中需要執行一次即可。接下來,我們來繪製一個圖形,看看具體的整合效果:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(20)
y = x**2

plt.plot(x, y)

上面的程式碼將繪製方程式 y=x^2 。計算單元格後,會得到如下圖形:

繪製方程式 y=x^2

我們看到,繪製出的圖形直接新增在了 notebook 中,就在程式碼的下面。我們可以之後修改程式碼,重新計算,這時圖形也會動態更新。這是每個資料科學家都想要的一個特性:將程式碼和圖片放在同一個檔案中,清楚地看出每段程式碼的效果。

非本地核心

我們可以非常容易地在一臺電腦上啟動 Jupyter,而且支援多人通過網路連線同一個 Jupyter 例項。在上一篇文章中,你有沒有注意啟動 Jupyter 時出現過這樣一段話:

The IPython Notebook is running at: http://localhost:8888/

這意味著,你的 notebook 是本地執行的,可以在瀏覽器上開啟 http://localhost:8888/ ,從而訪問 notebook。你也可以修改下配置,讓該 notebook 可以被公開訪問。這樣,任何知道 notebook 地址的人都可以連線到 notebook 進行遠端修改。

結語

從這兩篇快速入門介紹中,我們可以看到:Jupyter notebook 是一個非常強大的工具,可以建立漂亮的互動式文件,製作教學材料,等等。建議你馬上開始使用 Jupyter notebook,探索更多 notebook 的強大功能。