簡介
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 個選項:
好好試一試每一個選項以更好地理解它,它會改變你呈現你的代碼的方式!