Jupyter Notebook 入門指南

簡介

Jupyter Notebook(此前被稱為 IPython notebook)是一個交互式筆記本,支持運行 40 多種編程語言。

Jupyter Notebook 的本質是一個 Web 應用程序,便于創建和共享文學化程序文檔,支持實時代碼,數學方程,可視化和?markdown。 用途包括:數據清理和轉換,數值模擬,統計建模,機器學習等等

安裝與運行

1.使用Anaconda安裝

對于小白,強烈建議使用Anaconda發行版安裝Python和Jupyter,其中包括Python、Jupyter Notebook和其他常用的科學計算和數據科學軟件包。

首先,下載Anaconda。建議下載Anaconda的最新Python 3版本。其次,請按照下載頁面上的說明安裝下載的Anaconda版本。最后,安裝成功!

2.使用pip命令安裝

對于有經驗的Python用戶,可以使用Python的包管理器pip而不是Anaconda 來安裝Jupyter 。

如果已經安裝了Python 3:

python3?-m?pip?install?--upgrade?pip

pi3?install?jupyter

如果已經安裝了Python 2:

python2?-m?pip?install?--upgrade?pip

pip2?install?jupyter

但推薦使用Anaconda,自帶了Numpy、Scipy、Matplotlib等多種python開發包和Jupyter Notebook!

3.運行Jupyter Notebook

成功安裝Jupyter Notebook后,在Terminal (Mac / Linux)或Command Prompt(Windows)中運行以下命令就可打開Jupyter Notebook


輸入 :jupyter?notebook


執行上面命令之后, Jupyter Notebook 將在你的默認瀏覽器中打開,網址為:http://localhost:8888/tree

或者在開始菜單頁面直接打開



主面板(Notebook Dashboard)



打開Notebook,可以看到主面板。在菜單欄中有Files(文件)、Running(運行)、Clusters(集群)、三個選項。用到最多的是Files,我們可以在這里完成notebook的新建、重命名、復制等操作。

Files 基本上列出了所有的文件,

Running 顯示你當前已經打開的終端和Notebooks,

Clusters 由 IPython parallel 包提供,用于并行計算。

要打開一個新的 Jupyter Notebook,請單擊頁面右側的“New”選項卡。在這里,你有四個選項可供選擇:

? Python 3

? Text File (文本文件)

? Folder (文件夾)

? Terminal (終端)

在 "Text File" 選項中,你會得到一個空白的文檔。輸入你喜歡的任何字母,單詞和數字。它基本上是一個文本編輯器(類似于 Ubuntu 上的應用程序)。你也可以選擇一種語言(支持非常多的語言),然后用該語言來寫一個腳本。你還可以查找和替換文件中的單詞。

在 "Folder" 選項中, 顧名思義它的功能就是創建文件夾。你可以創建一個新文件夾來放入文件,重新命名或者刪除它。

"Terminal" 的工作方式與你的 Mac 電腦或 Linux 電腦上的終端完全相同(或者 Windows 上的 cmd )。它在你的Web瀏覽器中支持終端會話。在這個終端中輸入 python ,瞧!現在你已經可以開始寫 python 腳本了。

創建python文件


從“New”選項中選擇 "Python 3" 選項。你會看到如下的截圖:


代碼上方的菜單欄提供了操作單元格的各種選項:

insert (添加),edit (編輯),cut (剪切),move cell up/down (上下移動單元格),run cells(在單元格中運行代碼),interupt (停止代碼),save (保存工作),以及 restart (重新啟動內核)


在下拉菜單中(如上所示),你有四個選項:

Code - 這是你輸入代碼的地方

Markdown - 這是你輸入文本的地方。你可以在運行代碼后添加結論,添加注釋等。

Raw NBConvert - 這是一個命令行工具,可將你的筆記本轉換為另一種格式(如 HTML)

Heading - 你可以將標題添加到單獨的小節并使你的 Notebook 看起來干凈整潔。這個選項現在已經集成到 Markdown 選項中。添加一個“##”,以確保在你之后輸入的內容將被視為標題

編輯界面

一個notebook的編輯界面主要由四部分組成:名稱、菜單欄、工具條以及單元(Cell),如下圖所示:


1.在這里,我們可以修改notebook的名字,直接點擊當前名稱,彈出對話框進行修改:?


2.菜單欄詳解

2.1 File

? ?

2.2 Edit



2.3 View



2.4 Insert



2.5 Cell



2.6 Kernel


2.7 Help



3. 工具條


工具條中的功能基本上在菜單中都可以實現,這里是為了能更快捷的操作,將一些常用按鈕放了出來。下圖是對各按鈕的解釋。



4 .單元(Cell)

在單元中我們可以編輯文字、編寫代碼、繪制圖片等等。對于單元的詳細內容放在第五節中介紹。

單元(Cell)


1.兩種模式與快捷鍵


對于Notebook中的單元,有兩種模式:命令模式(Command Mode)與編輯模式(Edit Mode),在不同模式下我們可以進行不同的操作


如上圖,在編輯模式(Edit Mode)下,右上角出現一只鉛筆的圖標,單元左側邊框線呈現出綠色,點Esc鍵或運行單元格(ctrl-enter)切換回命令模式。


在命令模式(Command Mode)下,鉛筆圖標消失,單元左側邊框線呈現藍色,按Enter鍵或者雙擊cell變為編輯狀態。

2 .Cell的四種功能



Cell有四種功能:Code、Markdown、Raw NBConvert、Heading,這四種功能可以互相切換。Code用于寫代碼,Markdown用于文本編輯,Raw NBConvert中的文字或代碼等都不會被運行,Heading是用于設置標題的,這個功能已經包含在Markdown中了。四種功能的切換可以使用快捷鍵或者工具條

Markdown用于編輯文本,給出常用的Markdown用法



快捷鍵

一旦進入命令模式(即沒有活動單元格),就可以嘗試以下快捷鍵:

A 鍵將在選中單元格上方插入新單元格,B 鍵將在選中單元格下方插入一個單元格

要刪除單元格,請連續按兩次 D 鍵

要撤消已刪除的單元格,請按 Z 鍵

Y 鍵將當前的選中單元格變成代碼單元格

按住 Shift + 向上或向下箭頭鍵可以選擇多個單元格。在多選模式下,按 Shift + M 會合并選中的單元格

F 鍵會彈出 “查找和替換” 菜單

處于編輯模式時(在命令模式下按 Enter 鍵進入編輯模式),你會發現以下快捷鍵非常好用:

Ctrl + Home 轉到單元格的開頭

Ctrl + S 會保存你的工作

和上面提過的一樣,Ctrl + Enter 將運行你的整個單元格

Alt + Enter 不僅會運行你的單元格,它還會在下方添加一個新的單元格

Ctrl + Shift + F 打開命令選項板


其他

按tab鍵查看提示信息或者補全命令

在一個庫、方法或變量前加上 ?,就可以獲得它的一個快速語法說明

使用分號可以阻止該行函數的結果輸出

有用的 Jupyter Notebooks 擴展


擴展可以有效提高你的 Jupyter Notebooks 的生產力。安裝和使用擴展的最佳工具之一是 Nbextensions。它需要兩個簡單的步驟來安裝(也有其他方法,但我發現這是最方便的):

第1步:用 pip 來安裝它:

pip?install jupyter_contrib_nbextensions

第2步:安裝關聯的 JavaScript 和 CSS 文件

jupyter contrib nbextension?install?--user

完成此操作后,你會在 Jupyter Notebook 主頁頂部看到一個 Nbextensions 選項卡。這里面有很多非常棒的擴展供你使用


要啟用一個擴展,只需點擊它來激活。我在下面提到了4個我認為最有用的擴展:

Code prettify:重新格式化和美化代碼塊的內容

Printview:這個擴展添加了一個工具欄按鈕來調用當前 Notebook 的 jupyter nbconvert,并可選擇在新的瀏覽器標簽中顯示轉換后的文件

Scratchpad:這個擴展增加一個便捷單元格,它可以讓你運行你的代碼而不必修改你的 Notebook。這是一個非常方便的擴展,特別是當你想要測試你的代碼,但不想在你的活動Notebook上做這件事。

Table of Contents (2):這個擴展可以收集你的 Notebook 中的所有標題,并將它們顯示在一個浮動窗口中

保存和共享你的 Notebook

這是 Jupyter Notebook 中最重要和最棒的功能之一。當我需要寫博客文章,但我的代碼和注釋都保存在 Jupyter 文件中時,我需要先將它們轉換為另一種格式。請記住,這些 Notebooks 采用 json 格式,在共享它時這并不是很有幫助。我無法在電子郵件或博客上發布不同的單元格或代碼塊,對吧?

進入 Files?菜單,你會看到一個 Download As 選項:


你可以將你的 Notebook 保存為 7 個選項中的任何一個。最常用的是 .ipynb 文件,這樣其他人就可以在自己的機器上復制代碼;或者保存為 .html 文件, 這樣會打開一個網頁(當你想要保存嵌入在 Notebook 中的圖像時,這會派上用場)

你也可以使用 nbconvert 選項手動將你的 Notebook 轉換為不同的格式,如 HTML 或 PDF。

你還可以使用 jupyterhub,它允許你在其服務器上托管 Notebooks 并與多個用戶共享。許多頂尖的研究項目都使用這個功能用于協作。

最佳實踐


雖然單獨工作可能很有趣, 但大多數時候你會發現自己是在一個團隊中工作。在這種情況下,遵循指導方針和最佳實踐非常重要,這樣可以確保你的代碼和 Jupyter Notebooks 被正確標注,以便與你的團隊成員保持一致。下面我列出了一些最佳實踐指南,你在 Jupyter Notebooks 上工作時一定要遵循以下指南:

對于任何程序員來說最重要的事情之一:始終確保為代碼添加合適的注釋!

確保你有代碼所需的文檔。

考慮一個命名方案,并堅持在所有代碼中使用以確保一致性。這樣其他人更容易讀懂你的代碼。

無論你需要什么庫,在 Notebooks 開始時導入它們(并在它們旁邊添加注釋,說明導入它們的目的)。

確保代碼中行與行之間有適當間隔,不要把循環和函數放在同一行中。

有時候你會發現你的文件變得非常繁重??纯从袥]有方法隱藏你認為對于以后參考不太重要的代碼。 Notebooks 看起來整潔干凈, 讓人賞心悅目也非常重要。

Matplotlib 可以很漂亮整潔地展示你的 Notebook,看看怎么使用它!

地址:http://nbviewer.jupyter.org/github/jrjohansson/scientific-python-lectures/blob/master/Lecture-4-Matplotlib.ipynb

另一個提示! 當你想創建演示文稿時,首先想到的工具是 PowerPoint 和 Google Slides。其實你的 Jupyter Notebooks 也可以創建幻燈片!還記得我說它超級靈活嗎? 我一點都沒有夸大。

要將你的 Notebooks 轉換為幻燈片,請轉到 ?View -> Cell Toolbar,然后單擊 Slideshow。看!現在,每個代碼塊都在右側顯示一個 Slide Type 的下拉選項。它提供了以下 5 個選項:


好好試一試每一個選項以更好地理解它,它會改變你呈現你的代碼的方式!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,546評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,570評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,505評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,017評論 1 313
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,786評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,219評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,287評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,438評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,971評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,796評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,995評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,540評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,230評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,918評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,697評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374