大家好,我是老班~很多讀者問過我,文章中的Python/ target=_blank class=infotextkey>Python代碼都是用的什么編輯器寫的?
今天就公開啦:Jupyter Notebook,沒有Pycharm,沒有Vscode,沒有Sublime text。只有一款工具:Jupyter Notebook。從2019年至今,使用了兩年半多的時間,今天就好好聊聊它~
工欲善其事,必先利其器
1、官網學習地址:
https://jupyter.org/
2、使用說明:
https://jupyter-notebook.readthedocs.io/en/stable/notebook.html
一、目錄
二、誰在用Jupyter Notebook
也許還有朋友不知道Jupyter Notebook,到底都是誰在用它?
這是從官網上看到的使用者:谷歌、微軟、NASA、IBM等國際知名公司都在其中。所以,你確定還不用嗎?
三、什么是Jupyter Notebook
3.1簡介
Jupyter Notebook是基于網頁的用于交互計算的一款應用程序。它可被應用于整個計算過程:從開發文檔編寫、運行代碼和到展示結果。
簡而言之,Jupyter Notebook是以網頁的形式打開,可以在網頁頁面中直接編寫代碼和運行代碼,代碼的運行結果也會直接在代碼塊下顯示的程序。
如在編程過程中需要編寫說明文檔,可在同一個頁面中使用Markdown語法直接編寫,便于作及時的說明和解釋。
3.2組成
Jupyter notebook主要是由兩個部分組成:網頁和文檔
上面已經介紹了Jupyter Notebook中基于網頁的應用程序,在Jupyter 的整個網頁應用中結合了多個元素:說明文檔、計算公式、文檔編寫、可視化動態圖、甚至是可以嵌入PPT等。總之,這款網頁應用的程序能夠實現各種功能
Jupyter Notebook中的所有程序都能夠以各種形式的輸入和輸出:公式、文檔、富媒體形式等。
Jupyter的文檔是保存為后綴名為.ipynb的JSON格式文件,不僅便于版本控制,也方便與他人共享。
此外,文檔還可以導出為:HTML、LaTeX、PDF、Markdown等格式的文件,十分方便和互聯網化!
3.3特點
- 編程便捷:在jupyter notebook中編程,具有語法高亮、縮進、tab補全等功能;同時能夠在瀏覽器中直接運行代碼
- 支持Markdown:在在jupyter notebook中支持Markdown語法的,能夠直接編寫Markdown文檔
- 具有記憶功能:在jupyter notebook中產生的信息(同一次運行)具有記憶功能
- 文檔輸出多樣化:除了支持Markdown,還支持PDF、PPT、Latex公式、HTML、py文件等多種格式
- 動態可視化:jupyter notebook中生成的圖形可以是動態可視化的
四、安裝
建議直接通過anaconda來安裝Jupyter notebook,這樣后續省去很多麻煩。
anacoda是全球最大的數據科學平臺,一個基于Python的環境管理工具,相比其他庫管理工具,它更適合數據工作者。
安裝了anaconda之后,不僅是Jupyter notebook,很多python的第三方庫,比如:pandas、numpy等都會自動安裝好,實在是方便。
anaconda安裝可自行搜索教程,傻瓜式安裝
安裝包下載地址:
https://www.anaconda.com/products/individual#Downloads
五、啟動
(1)在安裝好了Jupyter notebook之后,我們可以在任意位置啟動它,直接輸入jupyter notebook即可啟動。
執行命令之后,在終端中將會顯示一系列notebook的服務器信息,同時瀏覽器將會自動啟動Jupyter Notebook:
(base) peter:pandas系列教程 peter$ pwd -- 查看當前的目錄
/Users/peter/Desktop/WeChat/文章/pandas系列教程
(base) peter:pandas系列教程 peter$ jupyter notebook -- 輸入 jupyter notebook 表示啟動
!!!注意:啟動Jupyter之后我們的全部操作都不要關閉終端,否則的話notebook就會斷開和本地服務器的連接。
(2)啟動之后就來到了初始頁面,包含你當前目錄的全部文件(文件夾和文檔):
我們看到notebook默認的地址是localhost:8888,也就是默認本機的8888端口。當我們開啟了多個notebook,會自動變成8889,8890等端口。
當然,我們也可以自定義端口:
jupyter notebook --port 9988 # 使用9988端口
(3)啟動之后我們可以新建一個ipynb的文件:
六、使用
在啟動Jupyter Notebook,并且創建了新的文件之后,我們便可以開始在里面進行編碼和文檔寫作。下面講講如何使用Jupyter Notebook。
首先我們需要明白一點:在Jupyter Notebook中有兩種模式
- 命令模式:鍵盤輸入運行程序命令,此時單元格是藍色的
- 編輯模式:允許你向單元格中輸入代碼或者文本內容,此時單元格是綠色的
6.1主頁面
主頁面分為4個部分:
- notebook名稱,可重命名
- 菜單欄
- 工具欄
- 代碼單元格
6.2幫助文檔
如果你是個新手,可以在notebook中直接查看幫助文檔:
!jupyter notebook -h # 感嘆號!不能少
6.3重命名
默認的名字是“未命名”,給文件重命名:圖解Pandas的Apply函數
6.4文件
【文件】菜單中主要是對各種文件的輸入和輸出操作,特別是將ipynb文件下載成各種形式進行輸出,十分方便:
6.5運行代碼
當我們在代碼的單元格中輸入了代碼,如何運行?
1、單擊【運行】按鈕
2、快捷鍵
將光標放在我們需要運行的代碼框中,然后 Shift+Enter 即可運行~
3、運行全部代碼
如果我們想直接從頭運行整個notebook中的全部代碼,如下操作:【服務】到【重啟&運行所有】
6.6內省
在一個對象的前后使用問號?可以顯示出關于該對象的概要信息,這個對象可以是自建的,也可以是Python中自帶的:
print函數和自定義函數的自省概要信息:
使用雙問號?還有個用途是顯示函數的源代碼:
6.7%run
%run命令可以用來運行任意的python文件:
- Python文件的后綴為“.py”
- “%run”后跟的是Python文件的絕對路徑
%run Python文件的絕對路徑
假設我們在當前目錄下有個python文件:
- 定義了3個變量
- 給定了一個返回值result
我們在notebook中運行py文件:查看3個變量和返回值的情況
七、擴展功能
7.1安裝
Jupyter notebook本身功能其實不是很多,所以通常會給它安裝一個擴展,安裝之后就可以起飛了。
安裝和啟動命令如下:
# 安裝Jupyter的配置器
pip install jupyter_nbextensions_configurator
# 啟動配置器
jupyter nbextensions_configurator enable --user
7.2顯示代碼行數
當一個單元格中的代碼很多行,我們想顯示行數:
7.3編碼Markdown文檔
當需要在notebook中做筆記的時候,都是使用的Markdown。在Jupyter notebook中是可以直接Markdown語法來編寫內容的,兩種方式可以實現。
方法1:下拉選項中選擇【標記】
方法2:快捷鍵的使用:【左側藍+M鍵】,常用
7.4生成目錄
在使用Markdown的時候是有不同層級的目錄,可以顯示在notebook中。首先在擴展中需要開啟這個功能:
點擊啟用目錄生成:目錄默認是在左邊,也是按照層級來實現的
我們把光標放在目錄上,呈現帶+的符號,可以拖到右邊:
除了在左側生成目錄,還可以在整個ipynb文件的最上面生成目錄:
不管是左側還是最上面的目錄,當我們點擊其中某個標題的時候,都會自動跳轉到相應的位置,查看、定位文檔或者代碼超級方便。
7.5標題高亮
安裝了擴展之后,我們還可以對標題進行高亮顯示:
- 有3種顏色可供選擇
- 設置了高亮之后標題中便會高亮
7.6LaTex公式
既然Jupyter notebook能夠使用Markdown,那么我們可以是Jupyter Notebook中編輯LaTex公式,舉一個例子:在Markdown格式下的cell中輸入如下內容:
$$ P(A mid B) = frac{P(B mid A) , P(A)}{P(B)} $$
便會生成相應的LaTeX公式:
7.7輸出多個結果
一般在notebook中只會輸出一個結果,通過設置能夠同時輸出多個。
默認情況下只會輸出最近一個變量的值**,例子中是b**。
通過設置InteractiveShell.astnodeinteractivity參數為all,就可以讓所有的變量或者聲明都能顯示出來,添加兩行代碼便可實現輸出多個變量的效果:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = 'all'
7.8拼寫檢查
這是檢查拼寫錯誤的一個擴展,能夠快速的發現我們拼寫中的錯誤。需要主要的是這個插件是在Markdown格式下作用的:
本意表達的是:This is wrong question
7.9隱藏輸入
當我們只想查看輸出out部分的內容,可以將輸入的代碼進行隱藏:
下面是隱藏之前的效果:
八、快捷鍵
1、命令模式快捷鍵(按 Esc 鍵開啟):
- 命令模式將鍵盤命令與Jupyter Notebook筆記本命令相結合,可以通過鍵盤不同鍵的組合運行筆記本的命令。
- 按esc鍵進入命令模式。
- 命令模式下,單元格邊框為灰色,且左側邊框線為藍色粗線條。
快捷鍵作用Enter轉入編輯模式Shift-Enter運行本單元,選中下個單元Ctrl-Enter運行本單元Alt-Enter運行本單元,在其下插入新單元Y單元轉入代碼狀態M單元轉入 markdown 狀態R單元轉入 raw 狀態1、2、6設定 1 、2、6級標題Up選中上方單元K選中上方單元Down選中下方單元J選中下方單元Shift-K連續選擇上方單元Shift-J連續選擇下方單元A在上方插入新單元B在下方插入新單元X剪切選中的單元C復制選中的單元Shift-V粘貼到上方單元V粘貼到下方單元Z恢復刪除的最后一個單元D,D刪除選中的單元Shift-M合并選中的單元Ctrl-S保存當前 NoteBookS保存當前 NoteBookL開關行號O轉換輸出Shift-O轉換輸出滾動Esc關閉頁面Q關閉頁面H顯示快捷鍵幫助I,I中斷 NoteBook 內核0,0重啟 NoteBook 內核Shift忽略Shift-Space向上滾動Space向下滾動
2、編輯模式快捷鍵( 按 Enter 鍵啟動)
- 編輯模式使用戶可以在單元格內編輯代碼或文檔。
- 按enter或return鍵進入編輯模式。
- 編輯模式下,單元格邊框和左側邊框線均為綠色。
快捷鍵作用Tab代碼補全或縮進Shift-Tab提示Ctrl-]縮進Ctrl-[解除縮進Ctrl-A全選Ctrl-Z撤銷Ctrl-Shift-Z重做Ctrl-Y重做Ctrl-Home跳到單元開頭Ctrl-Up跳到單元開頭Ctrl-End跳到單元末尾Ctrl-Down跳到單元末尾Ctrl-Left跳到左邊一個字首Ctrl-Right跳到右邊一個字首Ctrl-Backspace刪除前面一個字Ctrl-Delete刪除后面一個字Esc切換到命令模式Ctrl-M切換到命令模式Shift-Enter運行本單元,選中下一單元Ctrl-Enter運行本單元Alt-Enter運行本單元,在下面插入一單元Ctrl-Shift–分割單元Ctrl-Shift-Subtract分割單元Ctrl-S保存當前 NoteBookShift忽略Up光標上移或轉入上一單元Down光標下移或轉入下一單元Ctrl-/注釋整行/撤銷注釋
九、魔術命令
IPython的特殊命令被稱為魔術命令,這些命令被設計用于簡化常見任務。
官網地址:
https://ipython.readthedocs.io/en/stable/interactive/magics.html
魔術命令的前綴符號是百分號%,例如%timeit用來檢查一段Python代碼執行的時間。魔術命令可以直接使用,也可以賦值給變量再使用:
下面記錄的是IPython的幾個常用的魔法命令:
魔術命令作用%pwd查看當前的工作目錄%cd更改當前的工作目錄%ls查看目錄文件列表%writefile寫入文件%run運行腳本;%run可以從.py文件中執行python代碼,也可以指定ipynb文件%whos查看當前變量%reset清楚當前變量%timeit測試單行代碼運行時間%hist打印命令輸入歷史%paste從剪貼板中執行已經預先格式化的Python代碼%cpaste打開一個提示符,手動粘貼執行的python代碼%debug從最后發生報錯的底部進入交互式調試器
十、Jupyter Notebook換主題
在上面的圖形中都是使用的默認主題:白色,實際上主題是可以更換的:
在jupyter notebook中安裝并使用不同的主題
# 安裝
pip install jupyterthemes
pip install --upgrade jupyterthemes
切換不同主題
# 查看所有顏色主題 --list
jt -l
# 選擇主題 --theme
jt -t 主題名稱
# 恢復默認主題 --recover
jt -r
1、查看主題
$jt -t monokai # 選擇某個主題
$jt -t oceans16
# 然后重新啟動jupyter notebook
$jupyter notebook # 啟動命令
如果想改回原來的主題輸入 jt -r 即可
原文鏈接:
https://mp.weixin.qq.com/s/Qak18eniqpD7W965QcvX7A






