1个不为人知的 Jupyter notebook 使用技巧,今天分享出来。
Jupyter Notebook 是一個友好的 Python 編輯器,更是一款集編程和寫作于一體的效率工具!最近有個小伙伴看到我的 Jupyter Notebook截圖,就問為啥你沒寫變量名就輸出結果了呢?
嘿嘿,這時候我才發現這個技巧竟然好多人都不知道。
正文開始~
今天給大家推薦一個不為人知的Jupyter Notebook使用技巧。
默認輸出
雖然平時我隨手可能直接就用 Sublime Text 編輯Python文件了,但是如果涉及處理數據,還是習慣打開 Jupyter Notebook。
那我們還是以數據處理最常用的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()讀取數據集data后,默認情況下 DataFrame 并不會輸出數據。我們通常會再寫一遍變量名df預覽數據,或者使用head()方法檢查其前五行。
但是當我們進行大量數據處理時,就需要每執行一個操作(替換、運算、轉換、拼接等等),就要單獨寫一個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"其作用就是:顯示最后一個表達式的計算結果或賦值語句中使用的值。
在運行了這兩行代碼后,我們再運行前面的Pandas代碼,就會發現:
如上圖所示,我們不再需要運行df.head,所創建的DataFrame對象會自動顯示出來供我們檢查數據。
換成其他操作也是一樣的輸出結果。
這樣的話,我們每執行一個操作就可以直接顯示操作后的 DataFrame 對象。
是不是很方便~
其實除了“last_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"就可以實現一次性輸出多個結果。
一勞永逸
但是,最喜歡偷懶的我,肯定不樂意每次新建一個 Notebook 就要輸入這兩行代碼呀。
from?IPython.core.interactiveshell?import?InteractiveShell? InteractiveShell.ast_node_interactivity?=?"last_expr_or_assign"所以我們可以用這個方案,一勞永逸 :
在我們電腦的/.ipython/profile_default目錄下,創建一個名為ipython_config.py的文件。
接著將下面這段代碼寫入ipython_config.py文件中。
c?=?get_config() c.InteractiveShell.ast_node_interactivity?=?"last_expr_or_assign"創建該此文件后,我們再創建任何 Notebook 文件,打開之后的輸出行為都被固定下來了。
抑制輸出
這時候又有小伙伴會問了,我有的代碼單元格不想輸出咋辦啊。
啊這。。。
要不你再改回去?
算了,還有個方法,
就是在你的代碼后面加個分號,就能抑制輸出了。
如上圖所示,當我們以分號結束時,就不會顯示更多輸出。
各位伙伴們好,詹帥本帥搭建了一個個人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請移步小程序體驗一下哦!(歡迎提建議)
推薦閱讀
牛逼!Python常用數據類型的基本操作(長文系列第①篇)
牛逼!Python的判斷、循環和各種表達式(長文系列第②篇)
牛逼!Python函數和文件操作(長文系列第③篇)
牛逼!Python錯誤、異常和模塊(長文系列第④篇)
總結
以上是生活随笔為你收集整理的1个不为人知的 Jupyter notebook 使用技巧,今天分享出来。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 以后再也不去字节面试了…
- 下一篇: 精选30张炫酷的动态交互式图表,Pand