【Python】Jupyter Notebook的十大隐藏技巧--如何大大加速算法的迭代
作者:杰少
?Jupyter Notebook技巧大匯總
簡 介
目前非常多的數據科學工作還是基于Notebook和Pycharm一起進行的,很多時候我們會在Notebook上面驗證一些想法,然后再模塊化代碼寫入到工程中,今天我們分享一些Notebook一些不為人知的技巧,方便大家的大大加速適用Notebook的效率。
多個結果單個單元一起輸出
輸出所有變量
函數文檔快速查詢
Notebook的Debug
代碼快捷鍵
Notebook執行shell命令
Cell執行時間查詢
Notebook寫書
Notebook顯示Slides
所有Magic命令
十大Notebook使用技巧
01
多個結果單個單元一起輸出
使用Notebook的時候,我們知道Notebook一般只會看到最后一個需要輸出的結果,而忽略前面的結果,例如:
在同一單元格中有多行,“df.head(3)”,"df.tail(3)"和“df.shape”。那么我們往往只能看到"df.shape"的結果;
這可能并不是我們希望看到的,此處我們僅需加入兩行代碼,即可將多個結果一起輸出。具體地,如下:
import?pandas?as?pd df?=?pd.DataFrame({'A':[1,2,3,4,5],?'B':['a','b','c','d','e']}) df.head(3) df.tail(3) df.shape #?(5,?2)from?IPython.core.interactiveshell?import?InteractiveShell? InteractiveShell.ast_node_interactivity?=?"all" df.head(3) df.tail(3) df.shape02
輸出所有變量
在一些情況下,我們寫了非常多的代碼,這個時候有什么變量之類的可能已經記不清楚了,那么如何顯示當前Notebook中有多少變量呢?只需要進行下面的操作就可以知曉所有的變量。
%whos03
函數文檔快速查詢
有的時候我們想要知道一些函數的文檔,尤其是當我們初次使用該函數,我們需要知道這個函數的功能和變量等信息,此時我們只需要在該函數前面加入?即可。
?print04
Notebook的Debug
我們在Pycharm里面可以方便的Debug,但是在Notebook中我們往往依賴于直覺和不斷的結果輸出來調節代碼,如何在Notebook中進行Debug呢?很簡單,加入下面的一行代碼即可。
%%debugdef?_add_1(x):return?x+1print(_add_1(10))05
代碼快捷鍵
Ctrl + Enter - 運行當前的cell
Shift + Enter - 運行當前的cell并進入下一個cell
Space: 向下滑動cell
a - 在上面插入一個cell
b - 在下面插入一個cell
m - 將cell轉化為markdown
y - 將cell轉化為code
x - 裁剪選中的cell
c - 對選中的cell進行拷貝
v - 對選中的cell進行黏貼
z - 撤銷cell的刪除
06
Notebook執行shell命令
在cell的前面加入感嘆號"!"即可運行shell命令,例如現實當前目錄下面的文件,
07
Cell執行時間查詢
很多時候,在數據較大或者算法較慢的情況下,我們希望知道其運行時間,我們可以通過time工具包進行計算,但是在Notebook中,我們還可以通過下面的快捷指令進行計算。
%%time for?i?in?range(1000000):x?=?i+1 #?CPU?times:?user?95.9?ms,?sys:?2.66?ms,?total:?98.6?ms #?Wall?time:?98.1?ms08
Notebook寫書
Notebook除了可以寫Markdown和代碼,還可以排版成寫書的感覺,只需要安裝Notebook Extensions插件然后在Nbextension中選擇對應功能即可。
!?pip?install?jupyter_contrib_nbextensions !?jupyter?contrib?nbextension?install?--system09
Notebook顯示Slides
可以通過“View->Cell Toolbar -> Slideshow”,然后為Notebook中的每個單元格選擇幻燈片配置,創建Jupyter筆記本的幻燈片演示文稿。
最后,通過轉到終端并鍵入以下命令,就可以看到Slides了。
pip?install?jupyter_contrib_nbextensions? jupyter?nbconvert?my_notebook_name.ipynb?--to?slides?--post?serve10
所有Magic命令
Notebook中存在非常多的magic命令,可以直接通過輸入下面命令進行顯示。
%lsmagic#?Available?line?magics: #?%alias??%alias_magic??%autoawait??%autocall??%automagic??%autosave??%bookmark??%cat??%cd??%clear??%colors??%conda??%config??%connect_info??%cp??%debug??%dhist??%dirs??%doctest_mode??%ed??%edit??%env??%gui??%hist??%history??%killbgscripts??%ldir??%less??%lf??%lk??%ll??%load??%load_ext??%loadpy??%logoff??%logon??%logstart??%logstate??%logstop??%ls??%lsmagic??%lx??%macro??%magic??%man??%matplotlib??%mkdir??%more??%mv??%notebook??%page??%pastebin??%pdb??%pdef??%pdoc??%pfile??%pinfo??%pinfo2??%pip??%popd??%pprint??%precision??%prun??%psearch??%psource??%pushd??%pwd??%pycat??%pylab??%qtconsole??%quickref??%recall??%rehashx??%reload_ext??%rep??%rerun??%reset??%reset_selective??%rm??%rmdir??%run??%save??%sc??%set_env??%store??%sx??%system??%tb??%time??%timeit??%unalias??%unload_ext??%who??%who_ls??%whos??%xdel??%xmode#?Available?cell?magics: #?%%!??%%HTML??%%SVG??%%bash??%%capture??%%debug??%%file??%%html??%%javascript??%%js??%%latex??%%markdown??%%perl??%%prun??%%pypy??%%python??%%python2??%%python3??%%ruby??%%script??%%sh??%%svg??%%sx??%%system??%%time??%%timeit??%%writefile#?Automagic?is?ON,?%?prefix?IS?NOT?needed?for?line?magics.建議
用起來!
參考文獻
How to optimize your Jupyter Notebook
Increase Your Productivity with Jupyter Notebook
5 Tips and Tricks to use with Jupyter Notebook to be productive and to stay organiz
本站qq群955171419,加入微信群請掃碼:
總結
以上是生活随笔為你收集整理的【Python】Jupyter Notebook的十大隐藏技巧--如何大大加速算法的迭代的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hibernate实体映射配置1(jav
- 下一篇: 《Python3网络爬虫开发实战(第二版