原文出處: 魚心fishstar 在數(shù)據(jù)分析的道路上,你一定曾有過為新發(fā)現(xiàn)而激動不已的時刻,此時你急于將自己的發(fā)現(xiàn)告訴大家,卻遇到了這樣的問題:如何將我的分析過程清晰地表述出來呢? 為了能與同行們有效溝通,你需要重現(xiàn)整個分析過程,并將說明文字、代碼、圖表、公式、結(jié)論都整合在一個文檔中。顯然傳統(tǒng)的文本編輯工具并不能滿足這一需求,所以這兒隆重推薦一款神器 Jupyter Notebook,不僅能在文檔中執(zhí)行代碼,還能以網(wǎng)頁形式分享。 下圖簡單展示了Jupyter Notebook 文檔的樣式,更多示例可在 nbviewer 中找到。
本文將按如下內(nèi)容來展開:
一、Jupyter Notebook 介紹文學(xué)編程在介紹 Jupyter Notebook 之前,讓我們先來看一個概念:文學(xué)編程 ( Literate programming ),這是由 Donald Knuth 提出的編程方法。傳統(tǒng)的結(jié)構(gòu)化編程,人們需要按計(jì)算機(jī)的邏輯順序來編寫代碼;與此相反,文學(xué)編程則可以讓人們按照自己的思維邏輯來開發(fā)程序。 簡單來說,文學(xué)編程的讀者不是機(jī)器,而是人。 我們從寫出讓機(jī)器讀懂的代碼,過渡到向人們解說如何讓機(jī)器實(shí)現(xiàn)我們的想法,其中除了代碼,更多的是敘述性的文字、圖表等內(nèi)容。這么一看,這不正是數(shù)據(jù)分析人員所需要的編碼風(fēng)格么?不僅要當(dāng)好一個程序員,還得當(dāng)好一個作家。那么 Jupyter Notebook 就是不可或缺的一款集編程和寫作于一體的效率工具。 歷史傳承也許說到 Jupyter 你會覺得陌生,但想必你或多或少聽過鼎鼎大名的 IPython。其實(shí)Jupyter 脫胎于 IPython 項(xiàng)目,IPython 顧名思義,是專注于 Python 的項(xiàng)目,但隨著項(xiàng)目發(fā)展壯大,已經(jīng)不僅僅局限于 Python 這一種編程語言了。Jupyter 的名字就很好地釋義了這一發(fā)展過程,它是 Julia、Python 以及 R 語言的組合,字形相近于木星(Jupiter),而且現(xiàn)在支持的語言也遠(yuǎn)超這三種了。 優(yōu)點(diǎn)以下列舉了 Jupyter Notebook 的眾多優(yōu)點(diǎn):
二、Jupyter Notebook 使用入門安裝對于初學(xué)者,最簡單的方法是安裝 Anaconda,因?yàn)樗詭Я?Jupyter Notebook。如果想進(jìn)一步了解 Anaconda 的使用方法,可參考我的上一篇文章《致Python初學(xué)者們 – Anaconda入門使用指南》。 對于有經(jīng)驗(yàn)的同學(xué),自然使用命令行最為便捷。 如果在 conda 環(huán)境中,可以使用如下命令安裝:
或者直接通過 pip 安裝:
更多的安裝說明請參考官網(wǎng)。 運(yùn)行如果使用 Anaconda,可以在其 Navigator 圖形界面中點(diǎn)擊打開 Notebook。但是最快捷的方法還是在命令行中輸入:
此時你的 Web 瀏覽器被自動打開,顯示文件目錄。通過點(diǎn)擊右上角的
而關(guān)閉 notebook 文檔可以通過選擇文件名前的復(fù)選框后,點(diǎn)擊
界面Notebook 文檔是由一系列單元(Cell)構(gòu)成,主要有兩種形式的單元:
類似于 Linux 的 Vim 編輯器,在 notebook 中也有兩種模式:
如果要使用快捷鍵,首先按 盡管一開始需要花費(fèi)一些學(xué)習(xí)成本,但熟練使用快捷鍵將大大提高工作效率。試想你在鍵盤上十指如飛時,如果還需要通過鼠標(biāo)來操作文檔,是不是很影響思考速度呢? 三、Jupyter Notebook 進(jìn)階功能數(shù)學(xué)公式編輯如果你曾做過嚴(yán)肅的學(xué)術(shù)研究,一定對 LaTeX 并不陌生,這簡直是寫科研論文的必備工具,不但能實(shí)現(xiàn)嚴(yán)格的文檔排版,而且能編輯復(fù)雜的數(shù)學(xué)公式。在 Jupyter Notebook 的 markdown 單元中我們也可以使用 LaTeX 的語法來插入數(shù)學(xué)公式。 在文本行中插入數(shù)學(xué)公式,使用一對
如何在 notebook 中使用 LaTeX,可進(jìn)一步參考 A Primer on Using LaTeX in Jupyter Notebooks 這篇文章。 幻燈片制作既然Jupyter Notebook 擅長展示數(shù)據(jù)分析的過程,除了通過網(wǎng)頁形式分享外,當(dāng)然也可以將其制作成幻燈片的形式。這里有一個幻燈片示例供參考,其制作風(fēng)格簡潔明晰。 那么如何用 Jupyter Notebook 制作幻燈片呢?首先在 notebook 的菜單欄選擇 View > Cell Toolbar > Slideshow,這時在文檔的每個單元右上角顯示了 Slide Type 的選項(xiàng)。通過設(shè)置不同的類型,來控制幻燈片的格式。有如下5中類型:
當(dāng)編寫好了幻燈片形式的 notebook,如何來演示呢?這時需要使用
在命令行中敲入上述代碼后,瀏覽器會自動打開相應(yīng)的幻燈片。 魔術(shù)關(guān)鍵字魔術(shù)關(guān)鍵字(magic keywords),正如其名,是用于控制 notebook 的特殊的命令。它們運(yùn)行在代碼單元中,以 比如,要得到代碼運(yùn)行的時間,則可以使用 相關(guān)資源匯總本文給出了許多擴(kuò)展鏈接供參考,這里匯總?cè)缦?,供您參考?/p>
|
|