Jupyter notebook使用技巧與JupyterLab

Jupyter Notebook入門(mén)

人生就像一只儲(chǔ)蓄罐,你投入的每一分努力上祈,都會(huì)在未來(lái)的某一天培遵,回饋于你。而我們要做的雇逞,就是每天多努力一點(diǎn)點(diǎn)荤懂,進(jìn)步一點(diǎn)點(diǎn)茁裙。

1. 啟動(dòng)

在終端中輸入jupyter notebook是最常用的啟動(dòng)方式塘砸,默認(rèn)在本地的8888端口啟動(dòng)。如果本地已經(jīng)有一個(gè)jupyter正在運(yùn)行晤锥,再啟動(dòng)一個(gè)就會(huì)運(yùn)行在8889端口掉蔬。運(yùn)行完該命令,會(huì)在系統(tǒng)默認(rèn)的瀏覽器打開(kāi)一個(gè)網(wǎng)頁(yè)矾瘾,網(wǎng)頁(yè)的地址是:
http://localhost:8888/tree女轿。

image

新建
點(diǎn)擊右側(cè)的New,選擇Python3會(huì)在新的頁(yè)面中建立一個(gè)未命名的notebook文件壕翩,選擇Text File會(huì)新的頁(yè)面中建立一個(gè)未命名的txt文件蛉迹,選擇Folder會(huì)在當(dāng)前頁(yè)面中建立一個(gè)未命名文件夾,選擇Terminal會(huì)在新的頁(yè)面中建立Terminal放妈。
需要注意的是我們執(zhí)行該啟動(dòng)命令的目錄就是啟動(dòng)之后的根目錄北救。如果你是要打開(kāi)已經(jīng)存在的.ipynb文件,最好切換到該文件所在目錄再啟動(dòng)芜抒,或者啟動(dòng)之后將文件移動(dòng)(或復(fù)制)到啟動(dòng)目錄下珍策。


Running選項(xiàng)卡下可以看到當(dāng)前正在運(yùn)行的terminal和notebook,使我們可以對(duì)目前的資源使用情況進(jìn)行一個(gè)直觀了解宅倒。

2.退出

如果要停止某個(gè)正在執(zhí)行的notebook文件攘宙,可以在file選項(xiàng)卡下勾選該文件,點(diǎn)擊shutdown(也可以用其他方式拐迁,見(jiàn)后文)蹭劈。如果要關(guān)閉整個(gè)jupyter notebook,可以在終端中按下鍵盤(pán)上的Ctrl C即可线召。

Notebook使用說(shuō)明

接下來(lái)我們重點(diǎn)說(shuō)明一下新建“python3”之后的操作链方,這也是最常用的編寫(xiě)python文件的操作。

1.總體布局

image

上面圖中大致說(shuō)明了Notebook中每一部分的作用灶搜,對(duì)平常使用python運(yùn)行程序來(lái)講祟蚀,快捷命令已經(jīng)足夠工窍。快捷命令工具條從左到后的圖標(biāo)依次表示:保存文件前酿,添加新cell患雏,剪切選中的cell,復(fù)制選中的cell罢维,粘貼選中的cell淹仑,將選中cell上移,將選中cell下移肺孵,執(zhí)行選中的cell匀借,終止kernel,重啟kernel平窘,重啟kernel并重新運(yùn)行所有cell吓肋。Code點(diǎn)擊之后有四個(gè)選項(xiàng),分別是:Code(寫(xiě)python代碼)瑰艘,MarkDown(寫(xiě)MarkDown代碼是鬼,通常用于注釋),Raw NBConvert(一個(gè)轉(zhuǎn)換工具)紫新,Heading(快捷添加MarkDown標(biāo)題)均蜜。最后一個(gè)小鍵盤(pán)可以查看和搜索一些快捷鍵的操作。

2. 常用菜單操作:

  • 修改文件名:可以點(diǎn)擊文件名稱(chēng),在彈出的框中直接修改或者File—>Rename

  • 新建Notebook文件:File—>New Notebook—>python3

  • 下載文件:File—>Download as —> 選擇目標(biāo)格式即可下載

  • 合并cell:Edit—>Merge Cell Above或Merge Cell Below

  • 重啟Kernel并清除所有輸出:Kernel—>Restart & Clear Output

  • 重啟Kernel并運(yùn)行所有cell:Kernel—>Restart & Run All

  • 停止當(dāng)前Notebook運(yùn)行:Kernel—>ShutDown

這里只列出了常用的菜單操作,沒(méi)有列出的并不表示不常用绢掰,而是可以用快捷鍵或者菜單欄下方的快捷工具代替葫哗。如果需要查看每一個(gè)菜單選項(xiàng)的含義和作用,推薦文章:https://blog.51cto.com/853056088/2162189,寫(xiě)的非常詳細(xì)。

3. 命令模式和編輯模式

每一個(gè)cell有兩種模式:命令模式和編輯模式。如下圖所示:最左側(cè)是藍(lán)色的條是命令模式聪铺,是綠色的條表示編輯模式(此時(shí)cell中有光標(biāo),可以進(jìn)行代碼編寫(xiě))萄窜。在命令模式下铃剔,按下enter或者鼠標(biāo)單擊代碼框可以進(jìn)入編輯模式。在編輯模式下查刻,按下esc或者鼠標(biāo)單擊代碼框左側(cè)區(qū)域即可進(jìn)入命令模式键兜。

image

4. 常用快捷(鍵)操作:

代碼運(yùn)行:

  • ctrl + enter:運(yùn)行當(dāng)前cell的代碼,運(yùn)行完后依然保持在當(dāng)前cell

  • shift + enter:運(yùn)行當(dāng)前cell的代碼穗泵,運(yùn)行完后跳轉(zhuǎn)到下一個(gè)cell普气,如果是最后一個(gè)cell則會(huì)新增一個(gè)

  • 工具條上的Run

創(chuàng)建新的cell:

  • 命令模式下,按下字母a(above)佃延,會(huì)在當(dāng)前cell上方增加一個(gè)cell

  • 命令模式下现诀,按下字母b(blove)夷磕,會(huì)在當(dāng)前cell下方增加一個(gè)cell

  • 工具條上的?按鈕

刪除當(dāng)前側(cè)cell

  • 命令模式下,按下字母x仔沿,即可刪除當(dāng)前cell

  • 命令模式下坐桩,連續(xù)兩次按下字母d,即可刪除當(dāng)前cell

  • 工具條上的“剪刀”按鈕

合并cell

  • 命令模式下封锉,選中多個(gè)cell绵跷,shift + M可以進(jìn)行合并

  • Edit—>Merge Cell Above/Merge Cell Down

拆分cell

  • 編輯模式下,以光標(biāo)所在之處為分界點(diǎn)成福,ctrl shift -(減號(hào))碾局,可以進(jìn)cell的拆分

  • Edit—>Split Cell

保存代碼

  • 命令模式下,按下字母s奴艾,就能創(chuàng)建一個(gè)checkpoint

  • 工具條上的保存按鈕

  • File—>Save and Checkpoint

查找替換

  • 編輯模式下净当,ESC + F

  • Edit—>Find and Replace

折疊輸出:有時(shí)輸出過(guò)長(zhǎng)的情況

  • 編輯模式下,ESC+O

  • 在cell左側(cè)位置上雙擊即可折疊

  • Cell—>Current Output—>Toggle

顯示代碼行號(hào)

  • 命令模式下握侧,按下字母l(L的小寫(xiě)蚯瞧,鍵盤(pán)k右側(cè)的l)鍵嘿期,就能顯示當(dāng)前cell的行號(hào)

  • shift + l品擎,顯示所有cell的行號(hào)

  • View—>Toggle Line Numbers

切換代碼類(lèi)型

  • 命令模式下,按下m切換到MarkDown模式备徐,再按下y切換到code模式

  • 工具條上手動(dòng)切換

  • Cell—>Cell Type—>選擇相應(yīng)的代碼類(lèi)型

注釋代碼

  • 選中代碼萄传,command+/ (windows下是control)

    注:其他的快捷鍵可以點(diǎn)擊工具欄最后的小鍵盤(pán)查看。

tab鍵的使用

  • 只輸入變量或者函數(shù)的前幾個(gè)字母蜜猾,按下tab可以自動(dòng)補(bǔ)全

  • 已經(jīng)輸入函數(shù)秀菱,連續(xù)按下shift+tab可以查詢(xún)函數(shù)的具體用法,(一直可以按4次)

    image

執(zhí)行shell命令

  • 英文狀態(tài)下的感嘆號(hào)+普通的shell命令蹭睡,例如:!pwd衍菱,!ls等,有些時(shí)候或許很有用肩豁。

5. 魔法函數(shù)

image

以上是一些常用的魔法函數(shù)脊串,其他的一些魔法函數(shù)依然可以查閱上面的鏈接,https://blog.51cto.com/853056088/2162189嗎清钥,讀者可以查閱其具體的用法琼锋。

Jupyter Notebook擴(kuò)展

執(zhí)行以下代碼可以安裝jupyter notebook擴(kuò)展

pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install

image

安裝完之后,重新啟動(dòng)一下jupyter 服務(wù)祟昭,就可以看到Nbextensions選項(xiàng)卡缕坎。我們只需要勾選相應(yīng)的插件,在每一個(gè)notebook的工具條中就會(huì)出現(xiàn)相應(yīng)的擴(kuò)展篡悟。選中每個(gè)擴(kuò)展的時(shí)候谜叹,在其下方都會(huì)出現(xiàn)關(guān)于該擴(kuò)展的說(shuō)明匾寝,演示,配置等情況荷腊,通過(guò)仔細(xì)閱讀我們就能得知該擴(kuò)展的用法旗吁。

image

比較好用的幾個(gè)擴(kuò)展及其作用如下:

jupyter notebook 修改主題、字體停局、字號(hào)

Jupyter notebook 是個(gè)好東西很钓,但是默認(rèn)皮膚實(shí)在是看得人難受,最不能忍的是字號(hào)太小董栽。

安裝此工具:
pip install --upgrade jupyterthemes

查看可用主題:
jt -l

我自己的設(shè)置如下:

jt -t oceans16 -f fira -fs 13 -cellw 90% -ofs 11 -dfs 11 -T

1.Table of Contents

這個(gè)擴(kuò)展一般用于整個(gè)文件的目錄很多的時(shí)候码倦。首先在Nbextensions選項(xiàng)卡中勾選該插件,然后在工具條中就可以看到該擴(kuò)展按鈕锭碳。如果我們?cè)趎otebook中使用了MarkDown設(shè)置了我們的標(biāo)題袁稽,點(diǎn)擊該擴(kuò)展,就會(huì)在左側(cè)生成目錄擒抛,點(diǎn)擊左側(cè)的齒輪推汽,可以在最頂部添加一個(gè)cell專(zhuān)門(mén)用來(lái)顯示目錄。點(diǎn)擊左側(cè)和頂部的鏈接都可以快速跳轉(zhuǎn)到相應(yīng)的位置歧沪。還可以進(jìn)行目錄的折疊歹撒。注意到此時(shí)菜單欄上也多了一個(gè)“Navigate”標(biāo)簽,同樣顯示了目錄的情況诊胞。

image

2.Autopep8

這是一個(gè)將代碼按照PEP8進(jìn)行格式化的插件暖夭,前提是需要通過(guò)pip install autopep8安裝autopep8,安裝完之后需要重啟jupyter notebook服務(wù)才能生效撵孤。同樣在Nbextention選項(xiàng)卡中勾選Autopep8迈着,在工具欄中會(huì)多一個(gè)“錘子”一樣的按鈕,可以幫助我們排版代碼邪码,使其符合pep8標(biāo)準(zhǔn)裕菠。

image

3.Variable inspector

該插件可以幫助我們查看當(dāng)前notebook中所有的變量的名稱(chēng),類(lèi)型闭专,大小和值奴潘。省去了df.shape,type()等語(yǔ)句的執(zhí)行喻圃,也代替了前文提到的魔法函數(shù)“%whos”的執(zhí)行萤彩,讀者可以自行嘗試一下。

4.Code folding

顧名思義斧拍,該插件可以對(duì)代碼進(jìn)行一定的折疊雀扶,例如遇到class,def等關(guān)鍵字,而且主體代碼又很長(zhǎng)時(shí)愚墓,折疊代碼會(huì)方便閱讀予权,這一點(diǎn)也讓jupyter notebook更像一個(gè)IDE。

5.Execute time

該插件可以顯示每一個(gè)cell中代碼的執(zhí)行時(shí)間浪册。

image

除此之外還有一些其他常見(jiàn)的插件擴(kuò)展扫腺,例如Notify,Collapsible headings等村象,讀者可以自行探索查看笆环,并配置使用。

其他說(shuō)明
  • 制作幻燈片并放映:參考該鏈接的第二部分:

    https://blog.csdn.net/qq_27825451/article/details/85050496

  • 數(shù)學(xué)公式編輯:這個(gè)其實(shí)是MarkDown功能的延伸厚者,需要將cell的代碼類(lèi)型改為MarkDown躁劣,然后在一對(duì)美元符號(hào)之間寫(xiě)入LaTex公式,(例如$E=mc^2$)库菲,運(yùn)行cell之后就可以正常顯示公式了账忘。

  • 關(guān)于jupyter lab和jupyter hub

jupyter lab是基于jupyter notebook的新版本,是包括了Notebook的下一代的有模塊化的界面熙宇,可以在同一個(gè)窗口同時(shí)打開(kāi)好幾個(gè)notebook或文件(HTML, TXT, Markdown等等)鳖擒,都以標(biāo)簽的形式展示,于是就更像是一個(gè)IDE烫止。除了界面上存在差異蒋荚,使用方式上和notebook沒(méi)有大的差別。

image
jupyter hub是一個(gè)支持多用戶(hù)的 Jupyter Notebook 服務(wù)器烈拒,用于創(chuàng)建圆裕、管理广鳍、代理多個(gè) Jupyter Notebook 實(shí)例荆几。具有擴(kuò)展性和可定制性。常見(jiàn)的場(chǎng)景是公司的運(yùn)維人員對(duì)很多人使用的Notebook進(jìn)行管理和資源分配赊时。這里不太方便演示吨铸。
  • 關(guān)于jupyter notebook與pycharm的差別

個(gè)人認(rèn)為notebook是更“輕”量級(jí)的,適合小白使用祖秒。各個(gè)cell之間具有相對(duì)獨(dú)立诞吱,且變量共享的特點(diǎn),某些時(shí)候特別有用竭缝。(例如在爬蟲(chóng)時(shí)房维,請(qǐng)求一次就獲得了html源碼,后面進(jìn)行頁(yè)面解析時(shí)就可以以此為基礎(chǔ)進(jìn)行調(diào)試抬纸,無(wú)需再次請(qǐng)求咙俩,在處理對(duì)請(qǐng)求頻次有限制的網(wǎng)站時(shí)還是很有用的)。除此外,notebook能夠保存中間結(jié)果阿趁,方便演示膜蛔,適合數(shù)據(jù)分析人員或者數(shù)據(jù)科學(xué)家使用。

pycharm更適合大型工程項(xiàng)目的管理脖阵,每一個(gè)文件是一次執(zhí)行的皂股。如果一個(gè)項(xiàng)目工程中有很多個(gè)文件,這時(shí)最好使用pycharm命黔。此外pycharm在代碼編輯時(shí)呜呐,隨時(shí)會(huì)有提示,而且支持代碼跳轉(zhuǎn)悍募,便于對(duì)源碼的查看學(xué)習(xí)卵史。當(dāng)然工具畢竟只是工具,適合自己的就是最好的搜立,讀者可以根據(jù)自己的需求和使用習(xí)慣進(jìn)行選擇以躯。

JupyterLab——Jupyter Notebooks 的進(jìn)化

JupyterLab 是今年二月份推出的,被認(rèn)為是 Jupyter Notebooks 的進(jìn)一步發(fā)展啄踊。其支持更加靈活和更加強(qiáng)大的項(xiàng)目操作方式忧设,但具有和 Jupyter Notebooks 一樣的組件。JupyterLab 環(huán)境與 Jupyter Notebooks 環(huán)境完全一樣颠通,但具有生產(chǎn)力更高的體驗(yàn)址晕。

JupyterLab 讓你能在一個(gè)窗口中排布你的筆記本、終端顿锰、文本文件和輸出結(jié)果工作區(qū)谨垃!你只需拖放你需要的單元即可。你也可以編輯 Markdown硼控、CSV 和 JSON 等常用文件格式并實(shí)時(shí)預(yù)覽修改所造成的影響刘陶。

如果你想在你的機(jī)器上試用 JupyterLab,可查看安裝說(shuō)明:http://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html牢撼。JupyterLab 的開(kāi)發(fā)者的長(zhǎng)期目標(biāo)是最終替代 Jupyter Notebooks匙隔。但目前來(lái)看這還需要一些時(shí)間。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末熏版,一起剝皮案震驚了整個(gè)濱河市纷责,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌撼短,老刑警劉巖再膳,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異曲横,居然都是意外死亡喂柒,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)胳喷,“玉大人湃番,你說(shuō)我怎么就攤上這事】月叮” “怎么了吠撮?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)讲竿。 經(jīng)常有香客問(wèn)我泥兰,道長(zhǎng),這世上最難降的妖魔是什么题禀? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任鞋诗,我火速辦了婚禮,結(jié)果婚禮上迈嘹,老公的妹妹穿的比我還像新娘削彬。我一直安慰自己,他們只是感情好秀仲,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布融痛。 她就那樣靜靜地躺著,像睡著了一般神僵。 火紅的嫁衣襯著肌膚如雪雁刷。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天保礼,我揣著相機(jī)與錄音沛励,去河邊找鬼。 笑死炮障,一個(gè)胖子當(dāng)著我的面吹牛目派,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播铝阐,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼址貌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了徘键?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤遍蟋,失蹤者是張志新(化名)和其女友劉穎吹害,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體虚青,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡它呀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纵穿。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡下隧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谓媒,到底是詐尸還是另有隱情淆院,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布句惯,位于F島的核電站土辩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏抢野。R本人自食惡果不足惜拷淘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望指孤。 院中可真熱鬧启涯,春花似錦、人聲如沸恃轩。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)详恼。三九已至补君,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間昧互,已是汗流浹背挽铁。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留敞掘,地道東北人叽掘。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像玖雁,于是被迫代替她去往敵國(guó)和親更扁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容