1个不为人知的 Jupyter notebook 使用技巧,今天分享出来。
Jupyter Notebook 是一個友好的 Python 編輯器,更是一款集編程和寫作于一體的效率工具!最近有個小伙伴看到我的 Jupyter Notebook截圖,就問為啥你沒寫變量名就輸出結(jié)果了呢?
嘿嘿,這時候我才發(fā)現(xiàn)這個技巧竟然好多人都不知道。
正文開始~
今天給大家推薦一個不為人知的Jupyter Notebook使用技巧。
默認輸出
雖然平時我隨手可能直接就用 Sublime Text 編輯Python文件了,但是如果涉及處理數(shù)據(jù),還是習慣打開 Jupyter Notebook。
那我們還是以數(shù)據(jù)處理最常用的Pandas語句舉例吧,如下所示。
import?pandas?as?pddata?=?{"Car":?["A",?"B",?"C",?"D",?"E",?"F"],"Color":?["Red",?"Yellow",?"Black",?"Green",?"Black",?"Red"],"Year":?["1990",?"1980",?"2003",?"2000",?"2001",?"2004"],"Rating":?["2.5",?"1.5",?"3.8",?"9.7",?"8.9",?"3.2"]} df?=?pd.DataFrame(data) df.head()讀取數(shù)據(jù)集data后,默認情況下 DataFrame 并不會輸出數(shù)據(jù)。我們通常會再寫一遍變量名df預覽數(shù)據(jù),或者使用head()方法檢查其前五行。
但是當我們進行大量數(shù)據(jù)處理時,就需要每執(zhí)行一個操作(替換、運算、轉(zhuǎn)換、拼接等等),就要單獨寫一個df.head或df檢查新的 DataFrame 對象。
這真的太麻煩了,怎么提高效率呢?
更改默認輸出
由于Jupyter Notebook 建立在IPython庫之上,我們通過運行以下代碼來更改默認輸出行為。它會更改 Jupyter Notebook 所依賴的 IPython 中交互式 shell 的工作方式。
from?IPython.core.interactiveshell?import?InteractiveShell? InteractiveShell.ast_node_interactivity?=?"last_expr_or_assign"其作用就是:顯示最后一個表達式的計算結(jié)果或賦值語句中使用的值。
在運行了這兩行代碼后,我們再運行前面的Pandas代碼,就會發(fā)現(xiàn):
如上圖所示,我們不再需要運行df.head,所創(chuàng)建的DataFrame對象會自動顯示出來供我們檢查數(shù)據(jù)。
換成其他操作也是一樣的輸出結(jié)果。
這樣的話,我們每執(zhí)行一個操作就可以直接顯示操作后的 DataFrame 對象。
是不是很方便~
其實除了“l(fā)ast_expr_or_assign”選項之外,我們還可以嘗試其他選項。
ast_node_interactivity?=?Enum(['all',?'last',?'last_expr',?'none',?'last_expr_or_assign'],default_value='last_expr',help="""'all',?'last',?'last_expr'?or?'none',?'last_expr_or_assign'?specifyingwhich?nodes?should?be?run?interactively?(displaying?output?from?expressions).""").tag(config=True)比如我們將ast_node_interactivity設置改為all后,
from?IPython.core.interactiveshell?import?InteractiveShell InteractiveShell.ast_node_interactivity?=?"all"就可以實現(xiàn)一次性輸出多個結(jié)果。
一勞永逸
但是,最喜歡偷懶的我,肯定不樂意每次新建一個 Notebook 就要輸入這兩行代碼呀。
from?IPython.core.interactiveshell?import?InteractiveShell? InteractiveShell.ast_node_interactivity?=?"last_expr_or_assign"所以我們可以用這個方案,一勞永逸 :
在我們電腦的/.ipython/profile_default目錄下,創(chuàng)建一個名為ipython_config.py的文件。
接著將下面這段代碼寫入ipython_config.py文件中。
c?=?get_config() c.InteractiveShell.ast_node_interactivity?=?"last_expr_or_assign"創(chuàng)建該此文件后,我們再創(chuàng)建任何 Notebook 文件,打開之后的輸出行為都被固定下來了。
抑制輸出
這時候又有小伙伴會問了,我有的代碼單元格不想輸出咋辦啊。
啊這。。。
要不你再改回去?
算了,還有個方法,
就是在你的代碼后面加個分號,就能抑制輸出了。
如上圖所示,當我們以分號結(jié)束時,就不會顯示更多輸出。
各位伙伴們好,詹帥本帥搭建了一個個人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請移步小程序體驗一下哦!(歡迎提建議)
推薦閱讀
牛逼!Python常用數(shù)據(jù)類型的基本操作(長文系列第①篇)
牛逼!Python的判斷、循環(huán)和各種表達式(長文系列第②篇)
牛逼!Python函數(shù)和文件操作(長文系列第③篇)
牛逼!Python錯誤、異常和模塊(長文系列第④篇)
總結(jié)
以上是生活随笔為你收集整理的1个不为人知的 Jupyter notebook 使用技巧,今天分享出来。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 以后再也不去字节面试了…
- 下一篇: 精选30张炫酷的动态交互式图表,Pand