Python初學 — jupyter 介紹
前言
通常在做資料分析或是畫圖,我們會習慣使用 jupyter 作為我們開發的工具,因為有以下幾個特點:
- Debug Fast: 它可以將程式碼一個區塊的慢慢執行,不需要每次都將整個程式跑過一遍,直到出現你要的結果,你可以反覆的修改執行在同一個地方,直接完成你想像中的功能。
- Display Easy: 在執行的過程,你可以輕鬆的查看過程中的變數,隨時監控結果。
3. Extension Huge: 因為 jupyter 建構在 HTML 上,因此可借用 javascript 的功能,簡單的擴充程式的互動及呈現,可參看 jupyter 的官方網站:http://jupyter.org/widgets
4. Support Good: 支援許多種檔案的轉換,除了 .py
外,還可轉換成 html
檔放到自己的網站中。
因此這麼好的工具,如果你還不會使用的話,就太可惜了啊!
趕快來與我們一起學習這個工具的使用方法吧!
安裝
如何開啟 jupyter
使用 anaconda 的朋友
若你是使用 anaconda,你可以使用 anaconda navigator 來使用 jupyter notebook
但因為用此方法開啟的 jupyter notebook,不太好調整儲存的位置,因此建議參考下方的開啟方法,會比較方便。
用 cmd/powershell 來開啟 jupyter notebook
若是你想要更快速更漂亮的開啟,可以使用 cmd/powershell 來開啟
- 進入你想要新增或載入 jupyter 的資料夾
- 對著空白處,按住 Shift 鍵,同時點擊滑鼠右鍵
- 選擇 “在這裡開啟 cmd/powershell 視窗”
4. 等待 cmd/powershell 視窗開啟
5. 在視窗中輸入 jupyter notebook
,即可開啟
關閉 jupyter notebook
連續按兩次 “ctrl+c”
Jupyter 的檔案操作
新增檔案
- 點擊 “New”,並選擇 “
python[conda root]
"
2. 等待新分頁的開啟,新分頁即是新的檔案
兩種 kernel
[conda root]
與[default]
的差異
https://github.com/jupyter/notebook/issues/1850
儲存檔案
- 方法 1: 點選 File,選擇 Save and Checkpoint
- 方法 2: 直接按 “Ctrl+s” ,跟 microsoft word 一樣
修改檔名
- 點擊上面的名字,然後輸入你要修改的檔名
輸出成 .py 檔
關閉目前開啟的檔案
將沒用到的 jupyter,會釋放程式佔據的資源。
Jupyter 的編寫
因為 jupyter 可提供程式編輯及執行,所以 jupyter 有兩種模式,分別是編輯模式(綠色)及一般模式(藍色)。
模式的介紹及差異
- 編輯模式:使用上下左右鍵在程式區塊內移動,並可以編打程式碼(若進入時,程式區塊旁顯示綠色)。
- 一般模式:使用上下鍵選取不同的程式區塊,可執行程式區塊內的程式碼(若進入時,程式區塊旁顯示藍色)。
你可以在一般模式下,按下 “Enter“ 進入選取區塊並進行編輯,亦或是用滑鼠點擊想修改的程式碼。
在編輯模式下,想要跳回一般模式,可以按 “Esc” 來跳出。
一般模式下的操作
首先,程式碼寫完當然要執行了啊!特別注意的是, Jupyter 可以將整個 python 檔分區塊一一執行,可以不用一次就要跑完。將程式碼分成區塊,在區塊執行的中間查看目前的變數狀況,來協助程式的修正。所有稍早執行過的結果都會儲存起來,直到 kernel 關掉或重啟。
然後以下的快捷鍵全都要記起來啊!能不用手的工程師很帥!
程式區塊的執行
目前區塊,選取的區塊標記移到下個區塊
- 按鈕: “Run” 直接按 “Run” 來執行選取區塊的程式,並移到下一個區塊。會看到
In [1]
代表這個區塊是第幾個被執行的區塊。
- 快捷鍵: “shift + enter”
執行目前區塊,選取的區塊標記不移動
快捷鍵: “ctrl + enter”
中斷目前執行中的區塊
- 按鈕: “正方形”
- 快捷鍵: “ii” (連續按兩下 i)
程式區塊的操作
新增
在目前的區塊下方新增一個空的程式區塊
- 按鈕:”+”
- 快捷鍵:”b”
在目前的區塊上方新增一個空的程式區塊
- 快捷鍵:”a”
刪除
刪除選取的的程式區塊
- 按鈕: “剪刀”
- 快捷鍵: “dd” (連續按兩下 d)
複製
- 按鈕:請參考下方的 GIF
- 快捷鍵: 按 “c” 來複製選取的區塊,(移動到你要貼上的地方),按 “v” 在目前的區塊下方貼上複製的區塊
合併
將下方的區塊與目前選取的區塊,合成一個新的區塊
- 快捷鍵: “shift+m”
顯示行號
- 快捷鍵:“l” (英文字母的 l)
分割(必須在編輯模式)
- 快捷鍵: “ctrl + shift + -”
編輯模式下的快捷操作 (皆為快捷鍵)
- 註解: “ctrl+/”
- 縮排: “ctrl+[“
- 反縮排: “ctrl+]”
Kernel 的操作
下面可看到可針對 Kernel 的操作,有 Interrupt (中斷目前程式進行)、三種 Restart、Reconnect、Shutdown 及 Change kernel。
Restart 重啟
遇到以下的狀況,建議重啟 Kernel
- Cell 跑不出結果,一直顯示出
*
號。
可能的原因有兩種,第一種是input
卡住,這應該是各位目前最常遇到的,這主要是因為若在 jupyter kernel 進行中,沒有針對每一個input
做輸入時,又再做 cell 的重覆執行或刪除時,就會發生既沒有input
可供輸入,也一直跑不出結果來。至於第二種,系統仍在運行,計算過久或是陷入無限迴圈,皆有可能 - 當 module 無法正常
import
進來時。通常發生在 module 在 kernel 進行時有更新的動作,這時就需要清理一下快取來重新 import。
- 有三種不同的 Restart 方式
- Restart:單純重啟 kernel,之前執行的結果都還留在 (即 output)
- Restart & Clean Output:除了重啟 kernel 外,也順便把所有執行的結果清除掉
- Restart & Run All:重啟 kernel 後,從最上面的 cell 從上到下依序執序。
Reconnect
基本上,把網頁關掉,不會清掉之前在該網頁所做的事情,包含所儲存使用的變數們,因此若重新開起網頁時,可以重連並繼續做事。但有時仍會發生被清掉狀況,所以還是用完再關吧。
Shutdown
就如同上方所說,網頁關掉不代表執行的結果也會立即清掉,這時你可以選擇點選 Shutdown 來正確的清掉目前的執行狀態。下面那張即是 shutdown 後,顯示 No kernel 的結果。
Change Kernel
顧名思義就是選擇目前這個 jupyter 檔案要使用的 python 環境。
畫面的介紹
上圖即是我們平常使用 jupyter 的樣子,但有時這樣很笨重,特別是在你已經熟記快捷鍵,不需要再去移動你的滑鼠去點選 Toolbar 。
工程師的浪漫,在於不用滑鼠,敲打著機械式鍵盤,一聲一聲的落下,快速跳動如彈鋼琴的手,望著 Power mode 的程式編輯器,猶如朕執掌天下,秋千萬世由我開啟。
下方的 View 可以折疊隱藏資訊,讓你更專注在寫 code 上面。
將 Header 及 Toolbar 都關閉後,就會呈現如此輕爽的畫面 :)
結論
工欲善其事,必先利其器。熟悉自己使用的工具,加快每個小細節,就會有更多時間專注在 google 上面,可參看另一篇 用google來協助寫程式 (趁機宣傳之前寫的文章)。
僅注意的是,jupyter 的檔案使用起來較為麻煩,需要額外開啟 kernel 來執行做事,因此建議在初期程式開發時使用,待測試完功能無誤時,還是建議使用 .py
檔案來做之後的維護。