Jupyter Notebook 使用指南
簡介
Jupyter Notebook是一個能運行Python代碼的Web應用程序,是當今進行機器學習實踐的主流工具。它具有很多完美的特性,在進行Python項目的開發時也可以使用Jupyter Notebook來代替IDE。希望本文能讓你對這一神器有更快的入門理解。
IPython
如果你使用過Python,應該會在安裝完成,配置好環境變量後打開過cmd,鍵入python來檢測是否安裝成功。那時候出現的黑色窗口叫做Python shell,可以供我們進行交互式的輸入python指令並運行。
相比與Python shell,IPython 提供了更爲強大的編輯和交互功能。它也是一種基於python的交互式解釋器。從網上搜了張二者的圖片,如下:
在IPyhon之後,出現了IPython Notebook,它完整地繼承了 IPython 的交互式特性,同時以 Web 形式運行。IPython Notebook 的出現,讓數據分析和機器學習的過程變得高效。
好比原先需要用黑窗體運行的命令,如今可以放到web網頁上來運行了。再後來,IPython Notebook 發展成爲更加成熟和完善的開源項目,並更名爲 Jupyter Notebook。
如今,從數據清理、數據可視化、數據分析,再到後面的建立機器學習或深度學習模型,都可以在 Jupyter Notebook 完成。同時,Jupyter Notebook 可以保留代碼運行後的結果,方便內容的傳播,以及回顧做過的工作。可以說,它已成爲Python世界裏不可分割的一部分了
進入Jupyter Notebook
單元格
打開Jupyter Notebook後,首先您看到的應該是單元格和上面的工具欄等等。工具欄不多贅述,首先介紹一下單元格。
內容結構中最基本的組成單位被稱爲單元格,每個單元格可以支持不同的內容格式,包括但不限於Code,Markdown等等。
用鼠標單擊任意單元格就會選中相應的單元格,此時被選中的單元格左側會出現一條綠色的豎線。
如下圖:
單元格的兩種常用格式
每一個單元格會有多種模式,最常用的兩種分別是 Markdown(文本) 和 Code(代碼)。
判斷當前單元格是什麼格式?最簡單的方式就是觀察點擊該單元格後菜單欄裏顯示的單詞。
運行單元格
當我們在單元格中輸入了內容,怎樣讓內容生效呢??
——選中單元格後,使用快捷鍵 Shift + Enter
執行,即可馬上看到該單元格執行後的結果。
如果是Markdown,則會立刻變成對應的文檔;
如果是Python程序,則會立即執行其中的代碼。
單元格執行順序
無論是 Markdown 單元格,還是 Code 單元格,它們在整個notebook中都是按照從上到下的順序依次執行的。後面單元格中出現過的變量只有在前面的單元格中已經定義了,才能進行使用,否則會報錯。
執行完成的單元格左側會出現 In [序號]
的標誌。
# 舉個例子
a = 1
b = 2
print(a+b)
print(c)
如上圖所示,由於a,b均在前面已經定義了,所以可以正常的打印出a+b的值;
但是c未定義,所以程序報錯。
代碼補全
Jupyter Notebook繼承了python shell的特性,可以通過 Tab鍵進行代碼補全。
需要注意的是,如果希望自動補全某個模塊下的函數名稱,我們需要先將模塊導入後才能生效。
eg:只有運行了import numpy as np
,纔會在鍵入np.
後按Tab
出現numpy模塊的類和相關函數。
單元格的執行狀態
對於複雜度高的代碼,往往需要更長的執行等待時間。當一個單元格中的代碼正在執行時,單元格前面會出現In [*]
符號,執行完成後,[*]
中的*
變成對應的序號
。
除此之外,可以通過頁面右上角的Kernel狀態指示器判斷內核佔用情況。如果Python 字符右邊出現了實心圓圈 ◉,代表內核處於佔有狀態。而空心圓圈 ◯ 則代表內核處於空閒狀態。
#可以嘗試運行一下如下的程序進行觀察
import time
while True:
print('hello ,Jupyter Notebook')
time.sleep(1)
上面的程序運行後會一直循環,除非點擊了停止按鈕,纔會使程序強行終止。
重啓內核
有些時候,當我們運行復雜的代碼時,可能會使得Kernel陷入“假死”的狀態。在這種情況時,我們可以點擊restart
按鈕後會彈出確認對話框,點擊 Restart 即可。
快捷鍵
爲了提高Jupyter Notebook的使用效率,顯然存在一些快捷鍵,如下是筆者本人記得住(所以也是比較常用的幾個),供讀者查看:
1.模式切換
當前cell側邊爲藍色時,表示此時爲命令模式,按ENTER
切換爲編輯模式;
當前cell側邊爲綠色時,表示此時爲編輯模式,按Esc
切換爲編輯模式;
2.命令模式快捷鍵
爲了方便查看,我將功能類似的歸於一類,下面的幾個快捷鍵都是使用頻率比較高的,建議大家掌握鴨。
H
:查看所有快捷鍵。F
: 查找和替換。(find)S
:保存當前 Notebook 內容。(save)P
:調出 Notebook 命令欄。
A
: 在當前單元格上方新建空白單元格。(above)B
:在當前單元格下方新建空白單元格。(below)
M
:將單元格格式轉換爲 Markdown。Y
:將單元格格式轉換爲 Code。
X/C/Shift-V/V
: 剪切/複製/上方粘貼/粘貼。- 連續按
D
+D
:刪除當前單元格。(慎用,推薦使用 X 剪切單元格代替,因爲其可以起到刪除效果,且刪錯了還可以粘貼回來) - 連續按
I
+I
+I
:強制中止內核(當某個單元格執行時間較長或卡住時,可以強行中止,中止後前序單元格狀態依舊保留,非常好用!!) Z
: 撤銷操作。
Ctrl + Enter
:運行當前單元格內容。Shift + Enter
:運行當前單元格內容並跳轉到下一個cell。
總結
本文我們一起學習了Jupyter Notebook的基本使用技巧,這將對我們後續進行機器學習、深度學習和數據挖掘等新興技術的使用,產生有利的推動作用,並帶來極大的便利。