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