乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      左手程序員,右手作家:你必須會的Jupyter Notebook

       dinghj 2018-04-16
      原文出處: 魚心fishstar   

      在數(shù)據(jù)分析的道路上,你一定曾有過為新發(fā)現(xiàn)而激動不已的時刻,此時你急于將自己的發(fā)現(xiàn)告訴大家,卻遇到了這樣的問題:如何將我的分析過程清晰地表述出來呢?

      為了能與同行們有效溝通,你需要重現(xiàn)整個分析過程,并將說明文字、代碼、圖表、公式、結(jié)論都整合在一個文檔中。顯然傳統(tǒng)的文本編輯工具并不能滿足這一需求,所以這兒隆重推薦一款神器 Jupyter Notebook,不僅能在文檔中執(zhí)行代碼,還能以網(wǎng)頁形式分享。

      下圖簡單展示了Jupyter Notebook 文檔的樣式,更多示例可在 nbviewer 中找到。


      Jupyter Notebook 文檔示例

      本文將按如下內(nèi)容來展開:

      一、Jupyter Notebook 介紹

      • 文學(xué)編程
      • 歷史傳承
      • 優(yōu)點(diǎn)

      二、Jupyter Notebook 使用入門

      • 安裝
      • 運(yùn)行
      • 界面

      三、Jupyter Notebook 進(jìn)階功能

      • 數(shù)學(xué)公式編輯
      • 幻燈片制作
      • 魔術(shù)關(guān)鍵字

      一、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):

      • 極其適合數(shù)據(jù)分析
        想象一下如下混亂的場景:你在終端中運(yùn)行程序,可視化結(jié)果卻顯示在另一個窗口中,包含函數(shù)和類的腳本存在其他文檔中,更可惡的是你還需另外寫一份說明文檔來解釋程序如何執(zhí)行以及結(jié)果如何。此時 Jupyter Notebook 從天而降,將所有內(nèi)容收歸一處,你是不是頓覺靈臺清明,思路更加清晰了呢?
      • 支持多語言
        也許你習(xí)慣使用 R 語言來做數(shù)據(jù)分析,或者是想用學(xué)術(shù)界常用的 MATLAB 和 Mathematica,這些都不成問題,只要安裝相對應(yīng)的核(kernel)即可。這里列出了 Jupyter 支持的所有語言,供您參考。
      • 分享便捷
        支持以網(wǎng)頁的形式分享,GitHub 中天然支持 Notebook 展示,也可以通過 nbviewer 分享你的文檔。當(dāng)然也支持導(dǎo)出成 HTML、Markdown 、PDF 等多種格式的文檔。
      • 遠(yuǎn)程運(yùn)行
        在任何地點(diǎn)都可以通過網(wǎng)絡(luò)鏈接遠(yuǎn)程服務(wù)器來實(shí)現(xiàn)運(yùn)算,這里給出一個遠(yuǎn)程運(yùn)行的例子,可以體驗(yàn)一下 Jupyter Notebook。
      • 交互式展現(xiàn)
        不僅可以輸出圖片、視頻、數(shù)學(xué)公式,甚至可以呈現(xiàn)一些互動的可視化內(nèi)容,比如可以縮放的地圖或者是可以旋轉(zhuǎn)的三維模型。這就需要交互式插件(Interactive widgets)來支持,更多內(nèi)容請參考這里

      二、Jupyter Notebook 使用入門

      安裝

      對于初學(xué)者,最簡單的方法是安裝 Anaconda,因?yàn)樗詭Я?Jupyter Notebook。如果想進(jìn)一步了解 Anaconda 的使用方法,可參考我的上一篇文章《致Python初學(xué)者們 – Anaconda入門使用指南》。

      對于有經(jīng)驗(yàn)的同學(xué),自然使用命令行最為便捷。

      如果在 conda 環(huán)境中,可以使用如下命令安裝:

      1
      conda install jupyter notebook

      或者直接通過 pip 安裝:

      1
      pip install jupyter notebook

      更多的安裝說明請參考官網(wǎng)。

      運(yùn)行

      如果使用 Anaconda,可以在其 Navigator 圖形界面中點(diǎn)擊打開 Notebook。但是最快捷的方法還是在命令行中輸入:

      1
      jupyter notebook

      此時你的 Web 瀏覽器被自動打開,顯示文件目錄。通過點(diǎn)擊右上角的 new 創(chuàng)建新文檔。


      進(jìn)入 notebook

      而關(guān)閉 notebook 文檔可以通過選擇文件名前的復(fù)選框后,點(diǎn)擊 Shutdown 按鈕實(shí)現(xiàn)。如果要關(guān)閉整個服務(wù),則在原來的終端中按 Control + C 兩次。


      退出 notebook

      界面

      Notebook 文檔是由一系列單元(Cell)構(gòu)成,主要有兩種形式的單元:

      • 代碼單元:這里是你編寫代碼的地方,通過按 Shift + Enter 運(yùn)行代碼,其結(jié)果顯示在本單元下方。代碼單元左邊有 In [1]: 這樣的序列標(biāo)記,方便人們查看代碼的執(zhí)行次序。
      • Markdown 單元:在這里對文本進(jìn)行編輯,采用 markdown 的語法規(guī)范,可以設(shè)置文本格式、插入鏈接、圖片甚至數(shù)學(xué)公式。同樣使用 Shift + Enter 運(yùn)行 markdown 單元來顯示格式化的文本。


      Jupyter Notebook 編輯界面

      類似于 Linux 的 Vim 編輯器,在 notebook 中也有兩種模式:

      • 編輯模式:編輯文本和代碼。選中單元并按 Enter 鍵進(jìn)入編輯模式,此時單元左側(cè)顯示綠色豎線。
      • 命令模式:用于執(zhí)行鍵盤輸入的快捷命令。通過 Esc 鍵進(jìn)入命令模式,此時單元左側(cè)顯示藍(lán)色豎線。

      如果要使用快捷鍵,首先按 Esc 鍵進(jìn)入命令模式,然后按相應(yīng)的鍵實(shí)現(xiàn)對文檔的操作。比如切換成代碼單元(Y)或 markdown 單元(M),或者在本單元的下方增加一單元(B)。查看所有快捷命令可以按H。

      盡管一開始需要花費(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é)公式,使用一對 $符號,比如質(zhì)能方程 $E = mc^2$。如果要插入一個數(shù)學(xué)區(qū)塊,則使用一對美元$符號。比如下面公式表示 z=x/y:

      1
      $ $ z = frac{x}{y} $ $

      如何在 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中類型:

      • Slide:主頁面,通過按左右方向鍵進(jìn)行切換。
      • Sub-Slide:副頁面,通過按上下方向鍵進(jìn)行切換。
      • Fragment:一開始是隱藏的,按空格鍵或方向鍵后顯示,實(shí)現(xiàn)動態(tài)效果。
      • Skip:在幻燈片中不顯示的單元。
      • Notes:作為演講者的備忘筆記,也不在幻燈片中顯示。


      Jupyter Notebook 幻燈片設(shè)置

      當(dāng)編寫好了幻燈片形式的 notebook,如何來演示呢?這時需要使用 nbconvert

      1
      jupyter nbconvert notebook.ipynb --to slides --post serve

      在命令行中敲入上述代碼后,瀏覽器會自動打開相應(yīng)的幻燈片。

      魔術(shù)關(guān)鍵字

      魔術(shù)關(guān)鍵字(magic keywords),正如其名,是用于控制 notebook 的特殊的命令。它們運(yùn)行在代碼單元中,以 % 或者 %% 開頭,前者控制一行,后者控制整個單元。

      比如,要得到代碼運(yùn)行的時間,則可以使用 %timeit;如果要在文檔中顯示 matplotlib 包生成的圖形,則使用 % matplotlib inline;如果要做代碼調(diào)試,則使用 %pdb。但注意這些命令大多是在Python kernel 中適用的,其他 kernel 大多不適用。有許許多多的魔術(shù)關(guān)鍵字可以使用,更詳細(xì)的清單請參考 Built-in magic commands 。


      相關(guān)資源匯總

      本文給出了許多擴(kuò)展鏈接供參考,這里匯總?cè)缦?,供您參考?/p>

      1. Jupyter Notebook 官網(wǎng)
      2. 文學(xué)編程 Literate programming
      3. IPython 官網(wǎng)
      4. LaTeX官網(wǎng)
      5. LaTeX 語法:A Primer on Using LaTeX in Jupyter Notebooks
      6. 魔術(shù)關(guān)鍵字:Built-in magic commands
      2 贊 11 收藏 評論

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多