神器 Jupyter Notebook 入門使用介紹!

來源 | 尤而小屋
大家好,我是Peter~
很多讀者問過我,Peter文章中的Python代碼都是用的什么編輯器寫的?
今天就公開啦:Jupyter Notebook,沒有Pycharm,沒有Vscode,沒有Sublime text。只有一款工具:Jupyter Notebook。從2019年至今,使用了兩年半多的時間,今天就好好聊聊它~
工欲善其事,必先利其器

1、官網(wǎng)學習地址:
https://jupyter.org/
2、使用說明:
https://jupyter-notebook.readthedocs.io/en/stable/notebook.html
3、知乎很好的教程:
https://zhuanlan.zhihu.com/p/33105153
一、目錄

二、誰在用Jupyter Notebook
也許還有朋友不知道Jupyter Notebook,到底都是誰在用它?
這是從官網(wǎng)上看到的使用者:谷歌、微軟、NASA、IBM等國際知名公司都在其中。所以,你確定還不用嗎?

三、用Jupyter Notebook寫了什么
既然Jupyter Notebook這么受歡迎,那么Peter都用它寫了什么?(ipynb文件都在Jupyter notebook完成)
1、Pandas系列的文章

2、Plotly系列文章

3、可視化庫Pyecharts的使用

總結(jié):Peter所有的文章都是在 Jupyter ?Notebook 中完成的
四、什么是Jupyter Notebook
4.1簡介
Jupyter Notebook是基于網(wǎng)頁的用于交互計算的一款應(yīng)用程序。它可被應(yīng)用于整個計算過程:從開發(fā)文檔編寫、運行代碼和到展示結(jié)果。
簡而言之,Jupyter Notebook是以網(wǎng)頁的形式打開,可以在網(wǎng)頁頁面中直接編寫代碼和運行代碼,代碼的運行結(jié)果也會直接在代碼塊下顯示的程序。
如在編程過程中需要編寫說明文檔,可在同一個頁面中使用Markdown語法直接編寫,便于作及時的說明和解釋。
4.2組成
Jupyter notebook主要是由兩個部分組成:網(wǎng)頁和文檔
上面已經(jīng)介紹了Jupyter ?Notebook中基于網(wǎng)頁的應(yīng)用程序,在Jupyter 的整個網(wǎng)頁應(yīng)用中結(jié)合了多個元素:說明文檔、計算公式、文檔編寫、可視化動態(tài)圖、甚至是可以嵌入PPT等。總之,這款網(wǎng)頁應(yīng)用的程序能夠?qū)崿F(xiàn)各種功能
Jupyter Notebook中的所有程序都能夠以各種形式的輸入和輸出:公式、文檔、富媒體形式等。
Jupyter的文檔是保存為后綴名為.ipynb的JSON格式文件,不僅便于版本控制,也方便與他人共享。
此外,文檔還可以導(dǎo)出為:HTML、LaTeX、PDF、Markdown等格式的文件,十分方便和互聯(lián)網(wǎng)化!
4.3特點
編程便捷:在jupyter notebook中編程,具有語法高亮、縮進、tab補全等功能;同時能夠在瀏覽器中直接運行代碼 支持Markdown:在在jupyter notebook中支持Markdown語法的,能夠直接編寫Markdown文檔 具有記憶功能:在jupyter notebook中產(chǎn)生的信息(同一次運行)具有記憶功能 文檔輸出多樣化:除了支持Markdown,還支持PDF、PPT、Latex公式、HTML、py文件等多種格式 動態(tài)可視化:jupyter notebook中生成的圖形可以是動態(tài)可視化的
五、安裝
建議直接通過anaconda來安裝Jupyter notebook,這樣后續(xù)省去很多麻煩。
anacoda是全球最大的數(shù)據(jù)科學平臺,一個基于Python的環(huán)境管理工具,相比其他庫管理工具,它更適合數(shù)據(jù)工作者。
安裝了anaconda之后,不僅是Jupyter notebook,很多python的第三方庫,比如:pandas、numpy等都會自動安裝好,實在是方便。

anaconda安裝可自行搜索教程,傻瓜式安裝
推薦幾個安裝教程:
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之后,我們可以在任意位置啟動它,直接輸入jupyter notebook即可啟動。
執(zhí)行命令之后,在終端中將會顯示一系列notebook的服務(wù)器信息,同時瀏覽器將會自動啟動Jupyter Notebook:
(base)?peter:pandas系列教程?peter$?pwd?????--?查看當前的目錄
/Users/peter/Desktop/WeChat/文章/pandas系列教程??
(base)?peter:pandas系列教程?peter$?jupyter?notebook???--?輸入?jupyter?notebook?表示啟動
!!!注意:啟動Jupyter之后我們的全部操作都不要關(guān)閉終端,否則的話notebook就會斷開和本地服務(wù)器的連接。
(2)啟動之后就來到了初始頁面,包含你當前目錄的全部文件(文件夾和文檔):
我們看到notebook默認的地址是localhost:8888,也就是默認本機的8888端口。當我們開啟了多個notebook,會自動變成8889,8890等端口。

當然,我們也可以自定義端口:
jupyter?notebook?--port?9988???#?使用9988端口
(3)啟動之后我們可以新建一個ipynb的文件:

七、使用
在啟動Jupyter Notebook,并且創(chuàng)建了新的文件之后,我們便可以開始在里面進行編碼和文檔寫作。下面講講如何使用Jupyter Notebook。
首先我們需要明白一點:在Jupyter Notebook中有兩種模式
命令模式:鍵盤輸入運行程序命令,此時單元格是藍色的 編輯模式:允許你向單元格中輸入代碼或者文本內(nèi)容,此時單元格是綠色的
7.1主頁面
主頁面分為4個部分:
notebook名稱,可重命名 菜單欄 工具欄 代碼單元格

7.2幫助文檔
如果你是個新手,可以在notebook中直接查看幫助文檔:
!jupyter?notebook?-h????#?感嘆號!不能少

7.3重命名
默認的名字是“未命名”,給文件重命名:圖解Pandas的apply函數(shù)

7.4文件
【文件】菜單中主要是對各種文件的輸入和輸出操作,特別是將ipynb文件下載成各種形式進行輸出,十分方便:

7.5運行代碼
當我們在代碼的單元格中輸入了代碼,如何運行?
1、單擊【運行】按鈕

2、快捷鍵
將光標放在我們需要運行的代碼框中,然后 Shift+Enter 即可運行~

3、運行全部代碼
如果我們想直接從頭運行整個notebook中的全部代碼,如下操作:【服務(wù)】到【重啟&運行所有】

7.6內(nèi)省
在一個對象的前后使用問號?可以顯示出關(guān)于該對象的概要信息,這個對象可以是自建的,也可以是Python中自帶的:

print函數(shù)和自定義函數(shù)的自省概要信息:


使用雙問號?還有個用途是顯示函數(shù)的源代碼:

7.7%run
%run命令可以用來運行任意的python文件:
Python文件的后綴為“.py” “%run”后跟的是Python文件的絕對路徑
%run?Python文件的絕對路徑
假設(shè)我們在當前目錄下有個python文件:
定義了3個變量 給定了一個返回值result

我們在notebook中運行py文件:查看3個變量和返回值的情況

八、擴展功能
8.1安裝
Jupyter notebook本身功能其實不是很多,所以通常會給它安裝一個擴展,安裝之后就可以起飛了。
安裝和啟動命令如下:
#?安裝Jupyter的配置器
pip?install?jupyter_nbextensions_configurator
#?啟動配置器
jupyter?nbextensions_configurator?enable?--user


8.2顯示代碼行數(shù)
當一個單元格中的代碼很多行,我們想顯示行數(shù):

8.3編碼Markdown文檔
當Peter需要在notebook中做筆記的時候,都是使用的Markdown。在Jupyter notebook中是可以直接Markdown語法來編寫內(nèi)容的,兩種方式可以實現(xiàn)。
關(guān)于什么是Markdown以及Markdown的語法,直接在公眾號中回復(fù)Markdown就可以獲取免費的PPT來進行學習。
方法1:下拉選項中選擇【標記】


方法2:快捷鍵的使用:【左側(cè)藍+M鍵】,Peter常用



8.4生成目錄
在使用Markdown的時候是有不同層級的目錄,可以顯示在notebook中。首先在擴展中需要開啟這個功能:

點擊啟用目錄生成:目錄默認是在左邊,也是按照層級來實現(xiàn)的


我們把光標放在目錄上,呈現(xiàn)帶+的符號,可以拖到右邊:

除了在左側(cè)生成目錄,還可以在整個ipynb文件的最上面生成目錄:



不管是左側(cè)還是最上面的目錄,當我們點擊其中某個標題的時候,都會自動跳轉(zhuǎn)到相應(yīng)的位置,查看、定位文檔或者代碼超級方便。
8.5標題高亮
安裝了擴展之后,我們還可以對標題進行高亮顯示:
有3種顏色可供選擇 設(shè)置了高亮之后標題中便會高亮


8.6LaTex公式
既然Jupyter notebook能夠使用Markdown,那么我們可以是Jupyter Notebook中編輯LaTex公式,舉一個例子:在Markdown格式下的cell中輸入如下內(nèi)容:
$$?P(A?\mid?B)?=?\frac{P(B?\mid?A)?\,?P(A)}{P(B)}?$$
便會生成相應(yīng)的LaTeX公式:

8.7輸出多個結(jié)果
一般在notebook中只會輸出一個結(jié)果,通過設(shè)置能夠同時輸出多個。

默認情況下只會輸出最近一個變量的值**,例子中是b**。
通過設(shè)置InteractiveShell.astnodeinteractivity參數(shù)為all,就可以讓所有的變量或者聲明都能顯示出來,添加兩行代碼便可實現(xiàn)輸出多個變量的效果:
from?IPython.core.interactiveshell?import?InteractiveShell
InteractiveShell.ast_node_interactivity?=?'all'

8.8拼寫檢查
這是檢查拼寫錯誤的一個擴展,能夠快速的發(fā)現(xiàn)我們拼寫中的錯誤。需要主要的是這個插件是在Markdown格式下作用的:
本意表達的是:This is wrong question

8.9隱藏輸入
當我們只想查看輸出out部分的內(nèi)容,可以將輸入的代碼進行隱藏:


下面是隱藏之前的效果:

九、快捷鍵
1、命令模式快捷鍵(按 Esc 鍵開啟):
命令模式將鍵盤命令與Jupyter Notebook筆記本命令相結(jié)合,可以通過鍵盤不同鍵的組合運行筆記本的命令。 按 esc鍵進入命令模式。命令模式下,單元格邊框為灰色,且左側(cè)邊框線為藍色粗線條。
| 快捷鍵 | 作用 |
|---|---|
| Enter | 轉(zhuǎn)入編輯模式 |
| Shift-Enter | 運行本單元,選中下個單元 |
| Ctrl-Enter | 運行本單元 |
| Alt-Enter | 運行本單元,在其下插入新單元 |
| Y | 單元轉(zhuǎn)入代碼狀態(tài) |
| M | 單元轉(zhuǎn)入 markdown 狀態(tài) |
| R | 單元轉(zhuǎn)入 raw 狀態(tài) |
| 1、2、6 | 設(shè)定 1 、2、6級標題 |
| Up | 選中上方單元 |
| K | 選中上方單元 |
| Down | 選中下方單元 |
| J | 選中下方單元 |
| Shift-K | 連續(xù)選擇上方單元 |
| Shift-J | 連續(xù)選擇下方單元 |
| A | 在上方插入新單元 |
| B | 在下方插入新單元 |
| X | 剪切選中的單元 |
| C | 復(fù)制選中的單元 |
| Shift-V | 粘貼到上方單元 |
| V | 粘貼到下方單元 |
| Z | 恢復(fù)刪除的最后一個單元 |
| D,D | 刪除選中的單元 |
| Shift-M | 合并選中的單元 |
| Ctrl-S | 保存當前 NoteBook |
| S | 保存當前 NoteBook |
| L | 開關(guān)行號 |
| O | 轉(zhuǎn)換輸出 |
| Shift-O | 轉(zhuǎn)換輸出滾動 |
| Esc | 關(guān)閉頁面 |
| Q | 關(guān)閉頁面 |
| H | 顯示快捷鍵幫助 |
| I,I | 中斷 NoteBook 內(nèi)核 |
| 0,0 | 重啟 NoteBook 內(nèi)核 |
| Shift | 忽略 |
| Shift-Space | 向上滾動 |
| Space | 向下滾動 |
2、編輯模式快捷鍵( 按 Enter 鍵啟動)
編輯模式使用戶可以在單元格內(nèi)編輯代碼或文檔。 按 enter或return鍵進入編輯模式。編輯模式下,單元格邊框和左側(cè)邊框線均為綠色。
| 快捷鍵 | 作用 |
|---|---|
| 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 | 保存當前 NoteBook |
| Shift | 忽略 |
| Up | 光標上移或轉(zhuǎn)入上一單元 |
| Down | 光標下移或轉(zhuǎn)入下一單元 |
| Ctrl-/ | 注釋整行/撤銷注釋 |
十、魔術(shù)命令
IPython的特殊命令被稱為魔術(shù)命令,這些命令被設(shè)計用于簡化常見任務(wù)。
官網(wǎng)地址:https://ipython.readthedocs.io/en/stable/interactive/magics.html
魔術(shù)命令的前綴符號是百分號%,例如%timeit用來檢查一段Python代碼執(zhí)行的時間。魔術(shù)命令可以直接使用,也可以賦值給變量再使用:

下面??記錄的是IPython的幾個常用的魔法命令:
| 魔術(shù)命令 | 作用 |
|---|---|
| %pwd | 查看當前的工作目錄 |
| %cd | 更改當前的工作目錄 |
| %ls | 查看目錄文件列表 |
| %writefile | 寫入文件 |
| %run | 運行腳本;%run可以從.py文件中執(zhí)行python代碼,也可以指定ipynb文件 |
| %whos | 查看當前變量 |
| %reset | 清楚當前變量 |
| %timeit | 測試單行代碼運行時間 |
| %hist | 打印命令輸入歷史 |
| %paste | 從剪貼板中執(zhí)行已經(jīng)預(yù)先格式化的Python代碼 |
| %cpaste | 打開一個提示符,手動粘貼執(zhí)行的python代碼 |
| %debug | 從最后發(fā)生報錯的底部進入交互式調(diào)試器 |
十一、Jupyter Notebook換主題
在上面的圖形中都是使用的默認主題:白色,實際上主題是可以更換的:
在jupyter notebook中安裝并使用不同的主題
#?安裝
pip?install?jupyterthemes
pip?install?--upgrade?jupyterthemes
切換不同主題
#?查看所有顏色主題?--list
jt?-l
#?選擇主題?--theme
jt?-t?主題名稱
#?恢復(fù)默認主題?--recover
jt?-r
1、查看主題

$jt?-t?monokai??#?選擇某個主題
$jt?-t?oceans16
#?然后重新啟動jupyter?notebook
$jupyter?notebook???#?啟動命令


如果想改回原來的主題輸入 jt -r 即可
更多教程,關(guān)注豬哥??
