Jupyter Notebook 快速入门简易教程
Jupyter Notebook 快速入門
Jupyter Notebook(此前被稱為 IPython notebook)是一個交互式筆記本,支持運行 40 多種編程語言。在本文中,我們將介紹 Jupyter notebook 的主要特性,以及為什么對于希望編寫漂亮的交互式文檔的人來說是一個強大工具。
在開始使用 notebook 之前,我們先需要安裝該庫。你可以在?Jupyter 官網(wǎng)上找到完整的步驟。
譯者注:其實只要pip install jupyter就可以了
jupyter notebook運行上面的命令之后,你將看到類似下面這樣的輸出:
[I 20:06:36.367 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret [I 20:06:36.813 NotebookApp] Serving notebooks from local directory: /home/your_username [I 20:06:36.813 NotebookApp] 0 active kernels [I 20:06:36.813 NotebookApp] The IPython Notebook is running at: http://localhost:8888/ [I 20:06:36.813 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).同時,會在你開啟 notebook 的文件夾中啟動 Jupyter 主界面,如下所示:
如果想新建一個 notebook,只需要點擊New,選擇你希望啟動的 notebook 類型即可。
這里,因為我只有一個 Python 內(nèi)核,所以我們運行一個 Python notebook。在新打開的標(biāo)簽頁中,我們會看到 notebook 界面,目前里面什么也沒有。
notebook 界面由以下部分組成:
慢慢熟悉這些菜單和選項。如果想要詳細了解有關(guān) notebook 或一些庫的具體話題,可以使用菜單欄右側(cè)的幫助菜單。
下方的主要區(qū)域,由被稱為單元格的部分組成。每個 notebook 由多個單元格構(gòu)成,而每個單元格又可以有不同的用途。
下方截圖中看到的是一個代碼單元格(code cell),以[ ]開頭。在這種類型的單元格中,可以輸入任意代碼并執(zhí)行。例如,輸入1 + 2并按下Shift + Enter。之后,單元格中的代碼就會被計算,光標(biāo)也會被移動動一個新的單元格中。你會得到如下結(jié)果:
根據(jù)綠色邊框線,我們可以輕松地識別出當(dāng)前工作的單元格。接下來,我們在第二個單元格中輸入些其他代碼,例如:
for i in range(5):print(i)對上面的代碼求值時,你會得到:
和前一個示例一樣,代碼被計算之后,馬上就會顯示結(jié)果。你應(yīng)該注意到了,這次沒有出現(xiàn)類似Out[2]這樣的文字。這是因為我們將結(jié)果打印出來了,沒有返回任何的值。
notebook 有一個非常有趣的特性,就是可以修改之前的單元格,對其重新計算,這樣就可以更新整個文檔了。試著把光標(biāo)移回第一個單元格,并將1 + 2修改成2 + 3,然后按下Shift + Enter重新計算該單元格。你會發(fā)現(xiàn)結(jié)果馬上就更新成了 5。如果你不想重新運行整個腳本,只想用不同的參數(shù)測試某個程式的話,這個特性顯得尤其強大。不過,你也可以重新計算整個 notebook,只要點擊Cell?->?Run all即可。
現(xiàn)在我們已經(jīng)知道了如何輸入代碼,為什么不嘗試著讓這個 notebook 更加漂亮、內(nèi)容更豐富?為此,我們需要使用其他類型的單元格,即 Header單元格和 Markdown單元格。
首先,我們在頂部添加一個 notebook 的標(biāo)題。選中第一個單元格,然后點擊Insert?->?Insert單元格above(在上方插入單元格)。你會發(fā)現(xiàn),文檔的頂部馬上就出現(xiàn)了一個新的單元格。點擊在快捷鍵欄中的單元格類型,將其變成一個標(biāo)題單元格(heading cell):
選中下拉選項中的 Heading。然后會出現(xiàn)一個彈出消息,告訴你如何創(chuàng)建不同層級的標(biāo)題,這樣你就有了一個不同類型的 cell:
這個單元格以#標(biāo)記開頭,意味著這是一個一級標(biāo)題。如果需要子標(biāo)題,可以使用以下標(biāo)記表示(改變單元格類型時彈出消息中有解釋):
# : 一級標(biāo)題 ## : 二級標(biāo)題 ### : 三級標(biāo)題 ...在#之后寫下文檔的標(biāo)題,然后計算該單元格。你會發(fā)現(xiàn)一個樣式非常好看的標(biāo)題。作為示例和練習(xí),我還添加了其他幾個標(biāo)題單元格:
添加好標(biāo)題之后,我們在編寫一些解釋,介紹每個代碼單元格中的情況。為此,我們要在相應(yīng)的地方插入單元格,然后將其類型變成 Markdown。然后,計算新的單元格。就這樣,你的解釋文本就漂亮地渲染出來了!
最后,你可以重命名該 notebook,點擊Fiel?->?Rename,然后輸入新的名稱。這樣,新的名稱將會出現(xiàn)在窗口的左上角,在 Jupyter 的標(biāo)志旁邊。
單元格操作
高級單元格操作,將讓編寫 notebook 變得更加方便。舉例如下:
- 如果想刪除某個單元格,可以選擇該單元格,然后依次點擊Edit?->?Delete Cell;
- 如果想移動某個單元格,只需要依次點擊Edit?->?Move cell [up | down];
- 如果想剪貼某個單元測,可以先點擊Edit?->?Cut Cell,然后在點擊Edit?->?Paste Cell [Above | Below];
- 如果你的 notebook 中有很多單元格只需要執(zhí)行一次,或者想一次性執(zhí)行大段代碼,那么可以選擇合并這些單元格。點擊Edit?->?Merge Cell [Above | below]。
記住這些操作,它們可以幫助你節(jié)省許多時間。
Markdown 單元格高級用法
我們再來看看 Markdown 單元格。雖然它的類型是 markdown,但是這類單元格也接受 HTML 代碼。這樣,你就可以在單元格類實現(xiàn)更加豐富的樣式,添加圖片,等等。例如,如果想在 notebook 中添加 Jupyter 的 logo,將其大小設(shè)置為 100px x 100px,并且放置在單元格左側(cè),可以這樣編寫:
<img src="http://blog.jupyter.org/content/images/2015/02/jupyter-sq-text.png" style="width:100px;height:100px;float:left">計算該單元格之后,會出現(xiàn)這樣的結(jié)果:
另外,markdown 單元格還支持 LaTex 語法。例如:
$$\int_0^{+\infty} x^2 dx$$計算上述單元格,將獲得下面的 LaTex 方程式:
導(dǎo)出功能
notebook 還有一個強大的特性,就是其導(dǎo)出功能。可以將 notebook 導(dǎo)出為多種格式:
- HTML
- Markdown
- ReST
- PDF(通過 LaTeX)
- Raw Python
導(dǎo)出 PDF 功能,可以讓你不用寫 LaTex 即可創(chuàng)建漂亮的 PDF 文檔。你還可以將 notebook 作為網(wǎng)頁發(fā)布在你的網(wǎng)站上。甚至,你可以導(dǎo)出為 ReST 格式,作為軟件庫的文檔。
Matplotlib 集成
如果你用 Python 繪制過圖形,那你肯定知道 matplotlib。Matplotlib 是一個用于創(chuàng)建漂亮圖形的 Python 庫,結(jié)合 Jupyter notebook 使用時體驗更佳。
要想在 Jupyter notebook 中使用 matplotlib,需要告訴 Jupyter 獲取 matplotlib 生成的所有圖形,并將其嵌入 notebook 中。為此,需要計算:
%matplotlib inline譯注:要想執(zhí)行成功,需要先pip install matplotlib。
運行這個指令可能要花個幾秒鐘,但是在 notebook 中需要執(zhí)行一次即可。接下來,我們來繪制一個圖形,看看具體的集成效果:
import matplotlib.pyplot as plt import numpy as npx = np.arange(20) y = x**2plt.plot(x, y)上面的代碼將繪制方程式 y=x^2 。計算單元格后,會得到如下圖形:
我們看到,繪制出的圖形直接添加在了 notebook 中,就在代碼的下面。我們可以之后修改代碼,重新計算,這時圖形也會動態(tài)更新。這是每個數(shù)據(jù)科學(xué)家都想要的一個特性:將代碼和圖片放在同一個文件中,清楚地看出每段代碼的效果。
非本地內(nèi)核
我們可以非常容易地在一臺電腦上啟動 Jupyter,而且支持多人通過網(wǎng)絡(luò)連接同一個 Jupyter 實例。在上一篇文章中,你有沒有注意啟動 Jupyter 時出現(xiàn)過這樣一段話:
The IPython Notebook is running at: http://localhost:8888/這意味著,你的 notebook 是本地運行的,可以在瀏覽器上打開 http://localhost:8888/ ,從而訪問 notebook。你也可以修改下配置,讓該 notebook 可以被公開訪問。這樣,任何知道 notebook 地址的人都可以連接到 notebook 進行遠程修改。
結(jié)語
從這兩篇快速入門介紹中,我們可以看到:Jupyter notebook 是一個非常強大的工具,可以創(chuàng)建漂亮的交互式文檔,制作教學(xué)材料,等等。建議你馬上開始使用 Jupyter notebook,探索更多 notebook 的強大功能。
轉(zhuǎn)自:https://www.cnblogs.com/nxld/p/6566380.html
總結(jié)
以上是生活随笔為你收集整理的Jupyter Notebook 快速入门简易教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++的error C2668: 'po
- 下一篇: 矩阵的特征值、特征向量及其代码求解实现