公眾號(hào):尤而小屋
作者:Peter
編輯:Peter
大家好,我是Peter~
很多讀者問(wèn)過(guò)我,Peter文章中的Python代碼都是用的什么編輯器寫的?
今天就公開(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
3、知乎很好的教程:
https://zhuanlan.zhihu.com/p/33105153
也許還有朋友不知道Jupyter Notebook,到底都是誰(shuí)在用它?
這是從官網(wǎng)上看到的使用者:谷歌、微軟、NASA、IBM等國(guó)際知名公司都在其中。所以,你確定還不用嗎?
既然Jupyter Notebook這么受歡迎,那么Peter都用它寫了什么?(ipynb文件都在Jupyter notebook完成)
1、Pandas系列的文章
2、Plotly系列文章
3、可視化庫(kù)Pyecharts的使用
總結(jié):Peter所有的文章都是在 Jupyter Notebook 中完成的
Jupyter Notebook是基于網(wǎng)頁(yè)的用于交互計(jì)算的一款應(yīng)用程序。它可被應(yīng)用于整個(gè)計(jì)算過(guò)程:從開(kāi)發(fā)文檔編寫、運(yùn)行代碼和到展示結(jié)果。
簡(jiǎn)而言之,Jupyter Notebook是以網(wǎng)頁(yè)的形式打開(kāi),可以在網(wǎng)頁(yè)頁(yè)面中直接編寫代碼和運(yùn)行代碼,代碼的運(yùn)行結(jié)果也會(huì)直接在代碼塊下顯示的程序。
如在編程過(guò)程中需要編寫說(shuō)明文檔,可在同一個(gè)頁(yè)面中使用Markdown語(yǔ)法直接編寫,便于作及時(shí)的說(shuō)明和解釋。
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ì)算公式、文檔編寫、可視化動(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)化!
建議直接通過(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安裝可自行搜索教程,傻瓜式安裝
推薦幾個(gè)安裝教程:
1、Windows系統(tǒng):https://zhuanlan.zhihu.com/p/75717350
2、MacOS系統(tǒng):https://blog.csdn.net/lq_547762983/article/details/81003528
3、Linux系統(tǒng)(Ubuntu):https://zhuanlan.zhihu.com/p/84544848
安裝包下載地址:https://www.anaconda.com/products/individual#Downloads
(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)閉終端,否則的話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)行編碼和文檔寫作。下面講講如何使用Jupyter Notebook。
首先我們需要明白一點(diǎn):在Jupyter Notebook中有兩種模式
主頁(yè)面分為4個(gè)部分:
如果你是個(gè)新手,可以在notebook中直接查看幫助文檔:
!jupyter notebook -h # 感嘆號(hào)!不能少
默認(rèn)的名字是“未命名”,給文件重命名:圖解Pandas的apply函數(shù)
【文件】菜單中主要是對(duì)各種文件的輸入和輸出操作,特別是將ipynb文件下載成各種形式進(jì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)行所有】
在一個(gè)對(duì)象的前后使用問(wèn)號(hào)?可以顯示出關(guān)于該對(duì)象的概要信息,這個(gè)對(duì)象可以是自建的,也可以是Python中自帶的:
print函數(shù)和自定義函數(shù)的自省概要信息:
使用雙問(wèn)號(hào)?還有個(gè)用途是顯示函數(shù)的源代碼:
%run命令可以用來(lái)運(yùn)行任意的python文件:
%run Python文件的絕對(duì)路徑
假設(shè)我們?cè)诋?dāng)前目錄下有個(gè)python文件:
我們?cè)趎otebook中運(yùn)行py文件:查看3個(gè)變量和返回值的情況
Jupyter notebook本身功能其實(shí)不是很多,所以通常會(huì)給它安裝一個(gè)擴(kuò)展,安裝之后就可以起飛了。
安裝和啟動(dòng)命令如下:
# 安裝Jupyter的配置器
pip install jupyter_nbextensions_configurator
# 啟動(dòng)配置器
jupyter nbextensions_configurator enable --user
當(dāng)一個(gè)單元格中的代碼很多行,我們想顯示行數(shù):
當(dāng)Peter需要在notebook中做筆記的時(shí)候,都是使用的Markdown。在Jupyter notebook中是可以直接Markdown語(yǔ)法來(lái)編寫內(nèi)容的,兩種方式可以實(shí)現(xiàn)。
關(guān)于什么是Markdown以及Markdown的語(yǔ)法,直接在公眾號(hào)中回復(fù)Markdown就可以獲取免費(fèi)的PPT來(lái)進(jìn)行學(xué)習(xí)。
方法1:下拉選項(xiàng)中選擇【標(biāo)記】
方法2:快捷鍵的使用:【左側(cè)藍(lán)+M鍵】,Peter常用
在使用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í)方便。
安裝了擴(kuò)展之后,我們還可以對(duì)標(biāo)題進(jìn)行高亮顯示:
既然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公式:
一般在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'
這是檢查拼寫錯(cuò)誤的一個(gè)擴(kuò)展,能夠快速的發(fā)現(xiàn)我們拼寫中的錯(cuò)誤。需要主要的是這個(gè)插件是在Markdown格式下作用的:
本意表達(dá)的是:This is wrong question
當(dāng)我們只想查看輸出out部分的內(nèi)容,可以將輸入的代碼進(jìn)行隱藏:
下面是隱藏之前的效果:
1、命令模式快捷鍵(按 Esc 鍵開(kāi)啟):
esc
鍵進(jì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)前 NoteBook |
S | 保存當(dāng)前 NoteBook |
L | 開(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))
enter
或return
鍵進(jìn)入編輯模式。快捷鍵 | 作用 |
---|---|
Tab | 代碼補(bǔ)全或縮進(jìn) |
Shift-Tab | 提示 |
Ctrl-] | 縮進(jìn) |
Ctrl-[ | 解除縮進(jìn) |
Ctrl-A | 全選 |
Ctrl-Z | 撤銷 |
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)前 NoteBook |
Shift | 忽略 |
Up | 光標(biāo)上移或轉(zhuǎn)入上一單元 |
Down | 光標(biāo)下移或轉(zhuǎn)入下一單元 |
Ctrl-/ | 注釋整行/撤銷注釋 |
IPython的特殊命令被稱為魔術(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 | 寫入文件 |
%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)試器 |
在上面的圖形中都是使用的默認(rèn)主題:白色,實(shí)際上主題是可以更換的:
在jupyter notebook中安裝并使用不同的主題
# 安裝
pip install jupyterthemes
pip install --upgrade jupyterthemes
# 查看所有顏色主題 --list
jt -l
# 選擇主題 --theme
jt -t 主題名稱
# 恢復(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
即可
聯(lián)系客服