02.26 安裝、配置Jupyter Notebook快速入門教程

目錄一、安裝 Jupyter notebook
二、啟動 notebook 服務器
三、關閉 Jupyter


四、保存Notebook
運行幻燈片

  • What?
  • Why?
  • How?
  • ---安裝
  • ---啟動
  • ---關閉
  • ---保存
  • Markdown語法
  • Magic關鍵詞
  • 轉換notebook——toHTML
  • 創建幻燈片
  • 運行代碼

What?

文字化編程

notebook 是 Donald Knuth 在 1984 年提出的文字表達化編程的一種形式。在文字表達化編程中,直接在代碼旁寫出敘述性文檔,而不是另外編寫單獨的文檔。用 Donald Knuth 的話來說:

讓我們集中精力向人們解釋我們希望計算機做什麼,而不是指示計算機做什麼。歸根到底,代碼是寫給人看到,不是寫給計算機看的。notebook 恰恰提供了這種能力。你能夠直接在代碼旁寫出敘述性文檔。這不僅對閱讀 notebook 的人很有用,而且對你將來回頭分析代碼也很有用。

說點題外話:最近,文字表達化編程這個概念已經發展成為一門完整的編程語言,即 Eve。

notebook 如何工作

Jupyter notebook 源自 Fernando Perez 發起的 IPython 項目。IPython 是一種交互式 shell,與普通的 Python shell 相似,但具有一些很好的功能(例如語法高亮顯示和代碼補全)。最初,notebook 的工作方式是,將來自 Web 應用(你在瀏覽器中看到的 notebook)的消息發送給 IPython 內核(在後臺運行的 IPython 應用程序)。內核執行代碼,然後將結果發送回 notebook。當前架構與之相似,具體見下圖。

安裝、配置Jupyter Notebook快速入門教程

摘自 Jupyter 文檔核心是 notebook 的服務器。你通過瀏覽器連接到該服務器,而 notebook 呈現為 Web 應用。你在 Web 應用中編寫的代碼通過該服務器發送給內核,內核運行代碼,並將結果發送回該服務器。之後,任何輸出都會返回到瀏覽器中。保存 notebook 時,它將作為 JSON 文件(文件擴展名為 .ipynb)寫入到該服務器中。

Why?

此架構的一個優點是,內核無需運行 Python。由於 notebook 和內核分開,因此可以在兩者之間發送任何語言的代碼。例如,早期的兩個非 Python 內核分別是 R 語言和 Julia 語言。使用 R 內核時,用 R 編寫的代碼將發送給執行該代碼的 R 內核,這與在 Python 內核上運行 Python 代碼完全一樣。IPython notebook 已被改名,因為 notebook 變得與編程語言無關。新的名稱 Jupyter 由 Julia、Python 和 R 組合而成。如果有興趣,不妨看看可用內核的列表。

另一個優點是,你可以在任何地方運行 notebook 服務器,並且可通過互聯網訪問服務器。通常,你會在存儲所有數據和 notebook 文件的自有計算機上運行服務器。但是,你也可以在遠程計算機或雲實例(如 Amazon 的 EC2)上設置服務器。之後,你就可以在世界上任何地方通過瀏覽器訪問 notebook。

How?

一、安裝 Jupyter notebook

目前,安裝 Jupyter 的最簡單方法是使用 Anaconda。該發行版附帶了 Jupyter notebook。你能夠在默認環境下使用 notebook。

也就是說,只要你安裝了anaconda,你就同時默認安裝了jupyter notebook

要在 conda 環境中安裝 Jupyter notebook,請使用

<code>conda install jupyter notebook/<code>

也可以通過 pip 來獲得 Jupyter notebook。

<code>pip install jupyter notebook /<code>

二、啟動 notebook 服務器

在終端或控制檯中輸入

<code> jupyter notebook/<code>

服務器會在你運行此命令的目錄中啟動。

三、關閉 Jupyter

3.1 關閉running的notebook

通過在服務器主頁上選中 notebook 旁邊的複選框,然後點擊“Shutdown”(關閉),你就可以關閉各個 notebook。但是,在這樣做之前,請確保你保存了工作!否則,在你上次保存後所做的任何更改都會丟失。下次運行 notebook 時,你還需要重新運行代碼。

3.2 關閉整個服務器

通過在終端中按兩次 Ctrl + C,可以關閉整個服務器。再次提醒,這會立即關閉所有運行中的 notebook,因此,請確保你保存了工作!

四、保存Notebook

工具欄包含了保存按鈕,但 notebook 也會定期自動保存。標題右側會註明最近一次的保存。你可以使用保存按鈕手動進行保存,也可以按鍵盤上的 Esc,然後按 s。按 Esc 鍵會變為命令模式,而 s 是“保存”的快捷鍵。

Markdown單元格

像代碼單元格一樣,按 Shift + Enter 或 Ctrl + Enter 可運行 Markdown 單元格,這會將 Markdown 呈現為格式化文本。加入文本可讓你直接在代碼旁寫出敘述性文檔,以及為代碼和思路編寫文檔。

  • 鏈接
<code>[Neo's home page](http://www.cnblogs.com/Neo007/)/<code>

效果:Neo's home page

  • 強調效果
    可以使用星號或下劃線( * 或 _ )來表示粗體或斜體,從而添加強調效果。對於斜體,在文本兩側加上一個星號或下劃線,例如 _gelato_ 或
    *gelato* 會呈現為 gelato

粗體文本使用兩個符號,例如 **aardvark** 或 __aardvark__ 會呈現為 aardvark

只要在文本兩側使用相同的符號,星號和下劃線的作用都一樣。

  • 代碼
    可以通過兩種不同的方式顯示代碼,一種是與文本內聯,另一種是將代碼塊與文本分離。要將代碼變為內聯格式,請在文本兩側加上反撇號。
    例如,
<code>`string.punctuation`/<code>

會呈現為 string.punctuation。

要創建代碼塊,請另起一行並用三個反撇號將文本包起來:

<code>import requestsresponse = requests.get('https://www.udacity.com')/<code>

或者將代碼塊的每一行都縮進四個空格。

<code>xxxximport requestsxxxxresponse = requests.get('https://www.udacity.com')/<code>
  • 數學表達式

在 Markdown 單元格中,可以使用 LaTeX 符號創建數學表達式。notebook 使用 MathJax 將 LaTeX 符號呈現為數學符號。要啟動數學模式,請在 LaTeX 符號兩側加上美元符號(例如 y=mx+by=mx+b),以創建內聯的數學表達式。對於數學符號塊,請使用兩個美元符號:

<code>$$y = \\frac{a}{b+c}$$/<code>

此功能的確很有用,因此,如果你沒有用過 LaTeX,請閱讀這篇入門文檔,它介紹瞭如何使用 LaTeX 來創建數學表達式。

Magic關鍵詞

Magic-What?

1.Magic 關鍵字是可以在單元格中運行的特殊命令,能讓你控制 notebook 本身或執行系統調用(例如更改目錄)。2.Magic 命令的前面帶有一個或兩個百分號(% 或 %%),分別對應行 Magic 命令和單元格 Magic 命令。行 Magic 命令僅應用於編寫 Magic 命令時所在的行,而單元格 Magic 命令應用於整個單元格。

注意:這些 Magic 關鍵字是特定於普通 Python 內核的關鍵字。如果使用其他內核,這些關鍵字很有可能無效。

Magic-How?

  1. 交互工作方式
<code>%matplotlib/<code>

2.代碼計時有時候,你可能要花些精力優化代碼,讓代碼運行得更快。在此優化過程中,必須對代碼的運行速度進行計時。可以使用 Magic 命令 timeit 測算函數的運行時間,如下所示:

安裝、配置Jupyter Notebook快速入門教程

如果要測算整個單元格的運行時間,請使用 %%timeit,如下所示:

安裝、配置Jupyter Notebook快速入門教程

3.在notebook 中嵌入可視化內容

安裝、配置Jupyter Notebook快速入門教程

4.在 notebook 中進行調試對於 Python 內核,可以使用 Magic 命令 %pdb 開啟交互式調試器。出錯時,你能檢查當前命名空間中的變量。

安裝、配置Jupyter Notebook快速入門教程

在上圖中,可以看到我嘗試對字符串求和,這造成了錯誤。調試器指出了該錯誤,並提示你檢查代碼。

轉換notebook

<code>jupyter nbconvert --to html notebook.ipynb/<code>

創建幻燈片

運行幻燈片

要通過 notebook 文件創建幻燈片,需要使用 nbconvert:

<code>    jupyter nbconvert notebook.ipynb --to slides/<code>

這只是將 notebook 轉換為幻燈片必需的文件,你需要向其提供 HTTP 服務器才能真正看到演示文稿。

要轉換它並立即看到它,請使用

<code>jupyter nbconvert notebook.ipynb --to slides --post serve/<code>

這會在瀏覽器中打開幻燈片,讓你可以演示它。

運行代碼

提示:你可以通過單擊代碼區域,然後使用鍵盤快捷鍵 Shift+Enter 或 Shift+ Return 來運行代碼。或者在選擇代碼後使用播放(run cell)按鈕執行代碼。

小結

這個簡短的介紹到此結束,它主要介紹了在數據科學工作流程中的 Python 工具。充分利用 Anaconda 和 Jupyter notebook 不僅能提升你的工作效率,還會讓你心情更愉快。要想充分發揮它們的作用,你還要學習很多東西(例如 Markdown 和 LaTeX),但很快你就會知道為何要以其他方式進行數據分析。


分享到:


相關文章: