jupyter notebook快速入門及使用詳解
一、jupyter notebook是什么
官網(wǎng)的介紹是:Jupyter Notebook是一個(gè)Web應(yīng)用程序,允許您創(chuàng)建和共享包含實(shí)時(shí)代碼,方程,可視化和說明文本的文檔。 用途包括:數(shù)據(jù)清理和轉(zhuǎn)換,數(shù)值模擬,統(tǒng)計(jì)建模,機(jī)器學(xué)習(xí)等等。
簡(jiǎn)單的介紹就是:Jupyter Notebook是Ipython的升級(jí)版,而Ipython可以說是一個(gè)加強(qiáng)版的交互式 Shell,也就是說,它比在terminal里運(yùn)行python會(huì)更方便,界面更友好,功能也更強(qiáng)大。怎么強(qiáng)大法,往下看就知道了。
此架構(gòu)的一個(gè)優(yōu)點(diǎn)是,內(nèi)核無需運(yùn)行 Python。由于 notebook 和內(nèi)核分開,因此可以在兩者之間發(fā)送任何語言的代碼。例如,早期的兩個(gè)非 Python 內(nèi)核分別是 R 語言和 Julia 語言。使用 R 內(nèi)核時(shí),用 R 編寫的代碼將發(fā)送給執(zhí)行該代碼的 R 內(nèi)核,這與在 Python 內(nèi)核上運(yùn)行 Python 代碼完全一樣。IPython notebook 已被改名,因?yàn)?notebook 變得與編程語言無關(guān)。新的名稱 Jupyter 由 Julia、Python 和 R 組合而成。如果有興趣,不妨看看可用內(nèi)核的列表。
另一個(gè)優(yōu)點(diǎn)是,你可以在任何地方運(yùn)行 notebook 服務(wù)器,并且可通過互聯(lián)網(wǎng)訪問服務(wù)器。通常,你會(huì)在存儲(chǔ)所有數(shù)據(jù)和 notebook 文件的自有計(jì)算機(jī)上運(yùn)行服務(wù)器。但是,你也可以在遠(yuǎn)程計(jì)算機(jī)或云實(shí)例(如 Amazon 的 EC2)上設(shè)置服務(wù)器。之后,你就可以在世界上任何地方通過瀏覽器訪問 notebook。
二、jupyter notebook的安裝和配置
1. 安裝
安裝非常簡(jiǎn)單,只需要在終端輸入:
pip install jupyter
打開jupyter notebook 也只需要在終端輸入:
jupyter notebook
運(yùn)行上面的命令之后,你將看到類似下面這樣的輸出:

如上圖,它打開了一個(gè)端口,并且會(huì)在你的瀏覽器中打開這個(gè)頁面,主目錄是圖中的那個(gè)directory(可能第一次打開沒有這個(gè)目錄)。
2、配置
jupyter notebook --generate-config
打開“C:\Users\Administrator\.jupyter”文件夾,可以看到里面有個(gè)配置文件。

修改jupyter_notebook_config.py配置文件
打開這個(gè)配置文件,找到“c.NotebookApp.notebook_dir=……”,把路徑改成自己的工作目錄。

配置文件修改完成后, 以后在 jupyter notebook 中寫的代碼等都會(huì)保存在自己創(chuàng)建的目錄中。
jupyter notebook的自定義啟動(dòng)(變了)
配置文件修改成后,就可以啟動(dòng) jupyter notebook 了,命令行窗口中輸入 jupyter notebook,
默認(rèn)瀏覽器就會(huì)打開一個(gè)頁面
jupyter notebook的啟動(dòng)
命令行窗口輸入: jupyter notebook

三、使用
1、打開一個(gè)新文檔
在主頁面的右上角點(diǎn)new即可新建一個(gè)你想要的文件類型。

如上圖,jupyter也可以打開一個(gè)terminal,還可以作為一個(gè)text文本編輯器,功能明顯是比terminal強(qiáng)大了。
下面的Notebooks類型除了python 也是可以加入其他類型的文檔的,具體方法百度一下就好。
2、python編輯器介紹
點(diǎn)擊python2后會(huì)出現(xiàn)一下界面:

稍微介紹一下notebook 界面的組成部分1)notebook 的名稱2)主工具欄提供了保存、導(dǎo)出、重載 notebook,以及重啟內(nèi)核等選項(xiàng)3)快捷鍵4)notebook 編輯區(qū)
最下面的哪個(gè) In [ ]: 的框叫做單元格,你可以把你的代碼分成一段段的單元格輸入,然后可以逐個(gè)單元格地運(yùn)行。注意,這個(gè)功能是非常友好的,有時(shí)候只修改了中間的一小段代碼,又不想全部代碼都要重新運(yùn)行的時(shí)候這個(gè)功能就非常有用了。另外,單元格是可以改變順序的。而且可以輸出圖片和繪圖!非常強(qiáng)大吧!
這些只要稍微嘗試一下就懂的,下面主要介紹一些常用的技巧
**注意,jupyter notebook 是支持 TAB 鍵自動(dòng)補(bǔ)充單詞的,再一次展示了其強(qiáng)大友好的一面!
(1).修改文檔名稱

方法一:點(diǎn)上圖的Untitled
方法二:點(diǎn)File,再點(diǎn)rename
(2).導(dǎo)出文檔
步驟:點(diǎn)File,再點(diǎn)Download as

發(fā)現(xiàn)里面支持好幾種格式的導(dǎo)出,第一個(gè)ipynb是notebook的格式,是一種類json的格式保存,其他的建議你們都試一試,你會(huì)感到非常驚喜的。
(3).保存
Ctrl + S 快捷鍵的可以保存你的文檔的,默認(rèn)是保存為ipynb,保存在你的主目錄下!
(4).單元格格式
注意到快捷鍵欄中有一個(gè)code的下拉框,點(diǎn)開發(fā)現(xiàn)有幾個(gè)選項(xiàng):

這里介紹一下
- Code格式就是正常的python代碼格式
- Markdown的一個(gè)text文檔編輯格式,就像在word里編寫一樣
- Heading就是給Markdown的句子設(shè)置標(biāo)題等級(jí),像word的標(biāo)題一,標(biāo)題二...
- Raw NBConvert 沒用過不了解,可以自行百度或者看官網(wǎng)介紹
下面舉例說明一下
選擇一個(gè)空的單元格,code下拉框選擇Heading,會(huì)出現(xiàn)一個(gè)不同類型的 cell:

改變單元格類型時(shí)彈出消息中有解釋,后面那個(gè)單元格以 # 標(biāo)記開頭,意味著這是一個(gè)一級(jí)標(biāo)題。如果需要子標(biāo)題,可以使用以下標(biāo)記表示:
# : 一級(jí)標(biāo)題## : 二級(jí)標(biāo)題### : 三級(jí)標(biāo)題...
輸入內(nèi)容后再運(yùn)行一下(快捷欄里有),會(huì)出現(xiàn)類似下面的情況:

我一共輸入了三級(jí)標(biāo)題,點(diǎn)其中一個(gè),你會(huì)發(fā)現(xiàn)它的code下拉欄顯示是markdown類型
你以后代碼里print 的內(nèi)容都是以markdown的格式顯示的。
(5).快捷鍵
常用的快捷鍵是:
- Ctrl + Enter: 執(zhí)行單元格代碼
- Shift + Enter: 執(zhí)行單元格代碼并且移動(dòng)到下一個(gè)單元格
- Alt + Enter: 執(zhí)行單元格代碼,新建并移動(dòng)到下一個(gè)單元格
這幾個(gè)快捷鍵都是非常常用的。
(6).歷史輸入和輸出變量
與標(biāo)準(zhǔn) Shell 類似,IPython 中也可以通過 _ 和 _ _ 訪問上一次和上上一次的輸出。
當(dāng)你寫的單元格多了,肯定會(huì)注意到,IPython 中每一次的輸入輸出都有序號(hào)。你可以通過一下方法訪問這些輸入和輸出:
- _:訪問上一次輸出
- __:訪問上上一次輸出
- _X:訪問歷史 X 行輸出
- _iX:訪問歷史 X 行輸入
其中小寫字母 “i”,代表 “in”。
四、外部功能
上面講的是jupyter 的一些使用方法和技巧,其實(shí)它還有很多強(qiáng)大的外部功能的,下面給大家介紹一下。
(1).魔術(shù)命令
在 IPython 的會(huì)話環(huán)境中,所有文件都可以通過 %run 命令來當(dāng)做腳本執(zhí)行,并且文件中的變量也會(huì)隨即導(dǎo)入當(dāng)前命名空間。
即,對(duì)于一個(gè)模塊文件,你對(duì)他使用 %run 命令的效果和 from module import * 相同
這種以 % 開頭的命令在 IPython 中被稱為魔術(shù)命令,用于加強(qiáng) shell 的功能。
常用的魔術(shù)命令有:
| %quickref | 顯示 IPython 快速參考 |
| %magic | 顯示所有魔術(shù)命令的詳細(xì)文檔 |
| %debug | 從最新的異常跟蹤的底部進(jìn)入交互式調(diào)試器 |
| %pdb | 在異常發(fā)生后自動(dòng)進(jìn)入調(diào)試器 |
| %reset | 刪除 interactive 命名空間中的全部變量 |
| %run script.py | 執(zhí)行 script.py |
| %prun statement | 通過 cProfile 執(zhí)行對(duì) statement 的逐行性能分析 |
| %time statement | 測(cè)試 statement 的執(zhí)行時(shí)間 |
| %timeit statement | 多次測(cè)試 statement 的執(zhí)行時(shí)間并計(jì)算平均值 |
| %who、%who_ls、%whos | 顯示 interactive 命名空間中定義的變量,信息級(jí)別/冗余度可變 |
| %xdel variable | 刪除 variable,并嘗試清除其在 IPython 中的對(duì)象上的一切引用 |
| !cmd | 在系統(tǒng) shell 執(zhí)行 cmd |
| output=!cmd args | 執(zhí)行cmd 并賦值 |
| %bookmark | 使用 IPython 的目錄書簽系統(tǒng) |
| %cd direcrory | 切換工作目錄 |
| %pwd | 返回當(dāng)前工作目錄(字符串形式) |
| %env | 返回當(dāng)前系統(tǒng)變量(以字典形式) |
對(duì)魔術(shù)命令不熟悉的話可以通過 %magic 查看詳細(xì)文檔;對(duì)某一個(gè)命令不熟悉的話,可以通過 %cmd? 內(nèi)省機(jī)制查看特定文檔
(2).添加插件
a)側(cè)邊欄目錄導(dǎo)航

當(dāng)文章內(nèi)容非常長(zhǎng)的時(shí)候,前后找內(nèi)容,很麻煩,不如加一個(gè)sidebar,方便導(dǎo)航方法:https://github.com/ipython-contrib/IPython-notebook-extensions/tree/master/nbextensions/usability/toc2
b)隱藏代碼按鈕
有時(shí)候,希望代碼可以隱藏,這樣子文檔看起來,就會(huì)干凈一些

點(diǎn)擊按鈕,就可以隱藏所有的代碼,具體做法:http://stackoverflow.com/questions/27934885/how-to-hide-code-from-cells-in-ipython-notebook-visualized-with-nbviewer當(dāng)然,還有更多的extention可見https://github.com/ipython-contrib/IPython-notebook-extensions/
參考【https://www.douban.com/review/7890354/】
(3).運(yùn)行python文件
利用jupyter的cell是可以運(yùn)行python文件的。
方法一:
%run file.py
方法二:在unitx command前面加入一個(gè)感嘆號(hào)“!” ,如:
!python myfile.py
(4).導(dǎo)入外部代碼
比如有一個(gè)test.py文件,需要將其載入到j(luò)upyter的一個(gè)cell中
在需要導(dǎo)入該段代碼的cell中輸入
%load test.py #test.py是當(dāng)前路徑下的一個(gè)python文件
shift + enter運(yùn)行后,%load test.py被自動(dòng)加入了注釋符號(hào)#,test.py中的所有代碼都被load到了當(dāng)前的cell中
或者從從網(wǎng)絡(luò)load代碼到j(luò)upyter
在cell中輸入%load http://.....,然后運(yùn)行該cell,就會(huì)將load后面所對(duì)應(yīng)地址的代碼load到當(dāng)前的cell中;
(5).自定義快捷鍵
參考官方文檔:
參考
【1】官網(wǎng)安裝:https://jupyter.readthedocs.io/en/latest/install.html
【4】jupyter notebook 各種用法記錄(陸續(xù)更新)
相關(guān)文章
Pytorch中torch.nn.**和torch.nn.functional.**的區(qū)別
本文主要介紹了Pytorch中torch.nn.**和torch.nn.functional的區(qū)別,torch.nn.**是一個(gè)繼承的類,需要構(gòu)造對(duì)象后再調(diào)用,而torch.nn.functional是純數(shù)學(xué)函數(shù),可以直接使用,下面就來詳細(xì)的介紹一下2024-11-11
python趣味挑戰(zhàn)之爬取天氣與微博熱搜并自動(dòng)發(fā)給微信好友
忙著畢設(shè)與打游戲之余,突然想著寫個(gè)爬蟲練練手,想了想,就寫了一個(gè)爬蟲爬取“中國(guó)天氣網(wǎng)”與“微博熱搜”并定時(shí)發(fā)送給微信好友,放到服務(wù)器上運(yùn)行了幾天算是正常,需要的朋友可以參考下2021-05-05
python正則表達(dá)式實(shí)現(xiàn)自動(dòng)化編程
這篇文章主要介紹了python正則表達(dá)式實(shí)現(xiàn)自動(dòng)化編程,re模塊的compile()方法是構(gòu)成正則表達(dá)式的方法,向compile()傳入一個(gè)字符串表示正則表達(dá)式,該方法返回一個(gè)Regex模式的對(duì)象,需要的朋友可以參考下2023-01-01
Python實(shí)現(xiàn)計(jì)算圓周率π的值到任意位的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)計(jì)算圓周率π的值到任意位的方法,簡(jiǎn)單分析了圓周率的計(jì)算原理,并結(jié)合實(shí)例形式分析了Python計(jì)算圓周率的相關(guān)操作技巧,需要的朋友可以參考下2018-05-05
pycocotools介紹以及在windows10下的安裝過程
這篇文章主要介紹了pycocotools介紹以及在windows10下的安裝過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
Pycharm學(xué)習(xí)教程(7)虛擬機(jī)VM的配置教程
這篇文章主要為大家詳細(xì)介紹了最全的Pycharm學(xué)習(xí)教程第七篇,Python快捷鍵相關(guān)設(shè)置,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05

