<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          1個不為人知的 Jupyter notebook 使用技巧,今天分享出來。

          共 2545字,需瀏覽 6分鐘

           ·

          2021-11-30 20:18

          Jupyter Notebook 是一個友好的 Python 編輯器,更是一款集編程和寫作于一體的效率工具!最近有個小伙伴看到我的 Jupyter Notebook截圖,就問為啥你沒寫變量名就輸出結(jié)果了呢?

          嘿嘿,這時候我才發(fā)現(xiàn)這個技巧竟然好多人都不知道。

          正文開始~

          今天給大家推薦一個不為人知的Jupyter Notebook使用技巧。

          默認(rèn)輸出

          雖然平時我隨手可能直接就用 Sublime Text 編輯Python文件了,但是如果涉及處理數(shù)據(jù),還是習(xí)慣打開 Jupyter Notebook。

          那我們還是以數(shù)據(jù)處理最常用的Pandas語句舉例吧,如下所示。

          import?pandas?as?pd

          data?=?{"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后,默認(rèn)情況下 DataFrame 并不會輸出數(shù)據(jù)。我們通常會再寫一遍變量名df預(yù)覽數(shù)據(jù),或者使用head()方法檢查其前五行。

          但是當(dāng)我們進(jìn)行大量數(shù)據(jù)處理時,就需要每執(zhí)行一個操作(替換、運(yùn)算、轉(zhuǎn)換、拼接等等),就要單獨(dú)寫一個df.headdf檢查新的 DataFrame 對象。

          這真的太麻煩了,怎么提高效率呢?

          更改默認(rèn)輸出

          由于Jupyter Notebook 建立在IPython庫之上,我們通過運(yùn)行以下代碼來更改默認(rèn)輸出行為。它會更改 Jupyter Notebook 所依賴的 IPython 中交互式 shell 的工作方式。

          from?IPython.core.interactiveshell?import?InteractiveShell?
          InteractiveShell.ast_node_interactivity?=?"last_expr_or_assign"

          其作用就是:顯示最后一個表達(dá)式的計(jì)算結(jié)果或賦值語句中使用的值。

          在運(yùn)行了這兩行代碼后,我們再運(yùn)行前面的Pandas代碼,就會發(fā)現(xiàn):

          如上圖所示,我們不再需要運(yùn)行df.head,所創(chuàng)建的DataFrame對象會自動顯示出來供我們檢查數(shù)據(jù)。

          換成其他操作也是一樣的輸出結(jié)果。

          這樣的話,我們每執(zhí)行一個操作就可以直接顯示操作后的 DataFrame 對象。

          是不是很方便~

          其實(shí)除了“l(fā)ast_expr_or_assign”選項(xiàng)之外,我們還可以嘗試其他選項(xiàng)。

          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'?specifying
          ????????which?nodes?should?be?run?interactively?(displaying?output?from?expressions).
          ????????"""

          ????).tag(config=True)

          比如我們將ast_node_interactivity設(shè)置改為all后,

          from?IPython.core.interactiveshell?import?InteractiveShell
          InteractiveShell.ast_node_interactivity?=?"all"

          就可以實(shí)現(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 文件,打開之后的輸出行為都被固定下來了。

          抑制輸出

          這時候又有小伙伴會問了,我有的代碼單元格不想輸出咋辦啊。

          啊這。。。

          要不你再改回去?

          算了,還有個方法,

          就是在你的代碼后面加個分號,就能抑制輸出了。

          如上圖所示,當(dāng)我們以分號結(jié)束時,就不會顯示更多輸出。


          各位伙伴們好,詹帥本帥搭建了一個個人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請移步小程序體驗(yàn)一下哦?。g迎提建議)

          推薦閱讀


          牛逼!Python常用數(shù)據(jù)類型的基本操作(長文系列第①篇)

          牛逼!Python的判斷、循環(huán)和各種表達(dá)式(長文系列第②篇)

          牛逼!Python函數(shù)和文件操作(長文系列第③篇)

          牛逼!Python錯誤、異常和模塊(長文系列第④篇)


          瀏覽 70
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  正在播放:【性感女侍】疯狂做爱 | 欧美www. | 精品国产91久久久久久小树林 | 手机在线日本A V电影 | 中文无码三级 |