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í)等等。
簡單的介紹就是:Jupyter Notebook是Ipython的升級版,而Ipython可以說是一個(gè)加強(qiáng)版的交互式 Shell,也就是說,它比在terminal里運(yùn)行python會更方便,界面更友好,功能也更強(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ù)器。通常,你會在存儲所有數(shù)據(jù)和 notebook 文件的自有計(jì)算機(jī)上運(yùn)行服務(wù)器。但是,你也可以在遠(yuǎn)程計(jì)算機(jī)或云實(shí)例(如 Amazon 的 EC2)上設(shè)置服務(wù)器。之后,你就可以在世界上任何地方通過瀏覽器訪問 notebook。
二、jupyter notebook的安裝和配置
1. 安裝
安裝非常簡單,只需要在終端輸入:
pip install jupyter
打開jupyter notebook 也只需要在終端輸入:
jupyter notebook
運(yùn)行上面的命令之后,你將看到類似下面這樣的輸出:
如上圖,它打開了一個(gè)端口,并且會在你的瀏覽器中打開這個(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 中寫的代碼等都會保存在自己創(chuàng)建的目錄中。
jupyter notebook的自定義啟動(變了)
配置文件修改成后,就可以啟動 jupyter notebook 了,命令行窗口中輸入 jupyter notebook,
默認(rèn)瀏覽器就會打開一個(gè)頁面
jupyter notebook的啟動
命令行窗口輸入: jupyter notebook
三、使用
1、打開一個(gè)新文檔
在主頁面的右上角點(diǎn)new即可新建一個(gè)你想要的文件類型。
如上圖,jupyter也可以打開一個(gè)terminal,還可以作為一個(gè)text文本編輯器,功能明顯是比terminal強(qiáng)大了。
下面的Notebooks類型除了python 也是可以加入其他類型的文檔的,具體方法百度一下就好。
2、python編輯器介紹
點(diǎn)擊python2后會出現(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 鍵自動補(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的格式保存,其他的建議你們都試一試,你會感到非常驚喜的。
(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)題等級,像word的標(biāo)題一,標(biāo)題二...
- Raw NBConvert 沒用過不了解,可以自行百度或者看官網(wǎng)介紹
下面舉例說明一下
選擇一個(gè)空的單元格,code下拉框選擇Heading,會出現(xiàn)一個(gè)不同類型的 cell:
改變單元格類型時(shí)彈出消息中有解釋,后面那個(gè)單元格以 # 標(biāo)記開頭,意味著這是一個(gè)一級標(biāo)題。如果需要子標(biāo)題,可以使用以下標(biāo)記表示:
# : 一級標(biāo)題## : 二級標(biāo)題### : 三級標(biāo)題...
輸入內(nèi)容后再運(yùn)行一下(快捷欄里有),會出現(xiàn)類似下面的情況:
我一共輸入了三級標(biāo)題,點(diǎn)其中一個(gè),你會發(fā)現(xiàn)它的code下拉欄顯示是markdown類型
你以后代碼里print 的內(nèi)容都是以markdown的格式顯示的。
(5).快捷鍵
常用的快捷鍵是:
- Ctrl + Enter: 執(zhí)行單元格代碼
- Shift + Enter: 執(zhí)行單元格代碼并且移動到下一個(gè)單元格
- Alt + Enter: 執(zhí)行單元格代碼,新建并移動到下一個(gè)單元格
這幾個(gè)快捷鍵都是非常常用的。
(6).歷史輸入和輸出變量
與標(biāo)準(zhǔn) Shell 類似,IPython 中也可以通過 _ 和 _ _ 訪問上一次和上上一次的輸出。
當(dāng)你寫的單元格多了,肯定會注意到,IPython 中每一次的輸入輸出都有序號。你可以通過一下方法訪問這些輸入和輸出:
- _:訪問上一次輸出
- __:訪問上上一次輸出
- _X:訪問歷史 X 行輸出
- _iX:訪問歷史 X 行輸入
其中小寫字母 “i”,代表 “in”。
四、外部功能
上面講的是jupyter 的一些使用方法和技巧,其實(shí)它還有很多強(qiáng)大的外部功能的,下面給大家介紹一下。
(1).魔術(shù)命令
在 IPython 的會話環(huán)境中,所有文件都可以通過 %run 命令來當(dāng)做腳本執(zhí)行,并且文件中的變量也會隨即導(dǎo)入當(dāng)前命名空間。
即,對于一個(gè)模塊文件,你對他使用 %run 命令的效果和 from module import * 相同
這種以 % 開頭的命令在 IPython 中被稱為魔術(shù)命令,用于加強(qiáng) shell 的功能。
常用的魔術(shù)命令有:
%quickref | 顯示 IPython 快速參考 |
%magic | 顯示所有魔術(shù)命令的詳細(xì)文檔 |
%debug | 從最新的異常跟蹤的底部進(jìn)入交互式調(diào)試器 |
%pdb | 在異常發(fā)生后自動進(jìn)入調(diào)試器 |
%reset | 刪除 interactive 命名空間中的全部變量 |
%run script.py | 執(zhí)行 script.py |
%prun statement | 通過 cProfile 執(zhí)行對 statement 的逐行性能分析 |
%time statement | 測試 statement 的執(zhí)行時(shí)間 |
%timeit statement | 多次測試 statement 的執(zhí)行時(shí)間并計(jì)算平均值 |
%who、%who_ls、%whos | 顯示 interactive 命名空間中定義的變量,信息級別/冗余度可變 |
%xdel variable | 刪除 variable,并嘗試清除其在 IPython 中的對象上的一切引用 |
!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)變量(以字典形式) |
對魔術(shù)命令不熟悉的話可以通過 %magic 查看詳細(xì)文檔;對某一個(gè)命令不熟悉的話,可以通過 %cmd? 內(nèi)省機(jī)制查看特定文檔
(2).添加插件
a)側(cè)邊欄目錄導(dǎo)航
當(dāng)文章內(nèi)容非常長的時(shí)候,前后找內(nèi)容,很麻煩,不如加一個(gè)sidebar,方便導(dǎo)航方法:https://github.com/ipython-contrib/IPython-notebook-extensions/tree/master/nbextensions/usability/toc2
b)隱藏代碼按鈕
有時(shí)候,希望代碼可以隱藏,這樣子文檔看起來,就會干凈一些
點(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è)感嘆號“!” ,如:
!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被自動加入了注釋符號#,test.py中的所有代碼都被load到了當(dāng)前的cell中
或者從從網(wǎng)絡(luò)load代碼到j(luò)upyter
在cell中輸入%load http://.....,然后運(yùn)行該cell,就會將load后面所對應(yīng)地址的代碼load到當(dāng)前的cell中;
(5).自定義快捷鍵
參考官方文檔:
參考
【1】官網(wǎng)安裝:https://jupyter.readthedocs.io/en/latest/install.html
【4】jupyter notebook 各種用法記錄(陸續(xù)更新)
相關(guān)文章
Python中Playwright模塊進(jìn)行自動化測試的實(shí)現(xiàn)
playwright是由微軟開發(fā)的Web UI自動化測試工具,本文主要介紹了Python中Playwright模塊進(jìn)行自動化測試的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12Python3與redis交互,保存的是字符串,取出來是bytes類型問題
這篇文章主要介紹了Python3與redis交互,保存的是字符串,取出來是bytes類型問題,具有很好的參考價(jià)值,希望對大家有所幫助,2023-09-09Python讀取txt文件數(shù)據(jù)的方法(用于接口自動化參數(shù)化數(shù)據(jù))
這篇文章主要介紹了Python讀取txt文件數(shù)據(jù)的方法(用于接口自動化參數(shù)化數(shù)據(jù)),需要的朋友可以參考下2018-06-06Python Django獲取URL中的數(shù)據(jù)詳解
這篇文章主要介紹了Python Django獲取URL中的數(shù)據(jù)詳解,小編覺得挺不錯(cuò)的,這里分享給大家,供需要的朋友參考2021-11-11Python實(shí)現(xiàn)socket非阻塞通訊功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)socket非阻塞通訊功能,結(jié)合實(shí)例形式分析了Python使用socket模塊進(jìn)行非阻塞通訊的原理、多線程及客戶端、服務(wù)器端相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-11-11在PyCharm中找不到Conda創(chuàng)建的環(huán)境的解決方法
本文主要介紹了在PyCharm中找不到Conda創(chuàng)建的環(huán)境的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07python實(shí)現(xiàn)批量按比例縮放圖片效果
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)批量按比例縮放圖片效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03python解決Missing 1 required positional ar
這篇文章主要介紹了python解決Missing 1 required positional argument報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12