<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>

          介紹7個(gè)可以提高效率的Python技巧!

          共 3246字,需瀏覽 7分鐘

           ·

          2020-09-25 06:58


          Peter Nistrup?| 作者
          TowardsDataScience?|?來(lái)源
          https://mp.weixin.qq.com/s/AB8nX0_RTX9fvVY8xCaUfw



          本文列舉了一些提升或加速日常數(shù)據(jù)分析工作的技巧,包括:


          • Pandas Profiling

          • 使用 Cufflinks 和 Plotly 繪制 Pandas 數(shù)據(jù)

          • IPython 魔術(shù)命令

          • Jupyter 中的格式編排

          • Jupyter 快捷鍵

          • 在 Jupyter(或 IPython)中使一個(gè)單元同時(shí)有多個(gè)輸出

          • 為 Jupyter Notebook 即時(shí)創(chuàng)建幻燈片


          1


          Pandas Profiling


          該工具效果明顯。下圖展示了調(diào)用 df.profile_report() 這一簡(jiǎn)單方法的結(jié)果:


          使用該工具只需安裝和導(dǎo)入 Pandas Profiling 包。


          2


          使用 Cufflinks 和 Plotly 繪制 Pandas 數(shù)據(jù)


          「經(jīng)驗(yàn)豐富的」數(shù)據(jù)科學(xué)家或數(shù)據(jù)分析師大多對(duì) matplotlib pandas 很熟悉。也就是說(shuō),你只需調(diào)用 .plot() 方法,即可快速繪制簡(jiǎn)單的 pd.DataFrame 或 pd.Series:


          有點(diǎn)無(wú)聊?


          這已經(jīng)很好了,不過(guò)是否可以繪制一個(gè)交互式、可縮放、可擴(kuò)展的全景圖呢?是時(shí)候讓 Cufflinks* *出馬了?。–ufflinks 基于 Plotly 做了進(jìn)一步的包裝。)


          在環(huán)境中安裝 Cufflinks,只需在終端中運(yùn)行! pip install cufflinks --upgrade 即可。查看下圖:



          效果好多了!


          注意:上圖唯一改變的是 Cufflinks cf.go_offline() 的導(dǎo)入和設(shè)置,它將 .plot() 方法變?yōu)?.iplot()。


          其他方法如 .scatter_matrix() 也可以提供非常棒的可視化結(jié)果:


          3


          IPython 魔術(shù)命令


          IPython 的「魔術(shù)」是 IPython 基于 Python 標(biāo)準(zhǔn)語(yǔ)法的一系列提升。


          魔術(shù)命令包括兩種方法:

          • 行魔術(shù)命令(line magics):以 % 為前綴,在單個(gè)輸入行上運(yùn)行;

          • 單元格魔術(shù)命令(cell magics):以 %% 為前綴,在多個(gè)輸入行上運(yùn)行。


          下面列舉了 IPython 魔術(shù)命令提供的一些有用功能:


          1.%lsmagic:找出全部命令


          如果你只記得一個(gè)魔術(shù)命令,那必須得是這一個(gè)。執(zhí)行 %lsmagic 命令將提供所有可用魔術(shù)命令的列表:


          2.%debug:交互式 debug


          大部分?jǐn)?shù)據(jù)科學(xué)家都遇到過(guò)這種情況:


          執(zhí)行的代碼塊一直 break,你絕望地寫(xiě)了 20 個(gè) print() 語(yǔ)句,想輸出每個(gè)變量的內(nèi)容。然后,當(dāng)你最終修復(fù)問(wèn)題后,你還得返回并再次刪除所有 print() 語(yǔ)句。


          不過(guò)以后再也不用這樣了。遇到問(wèn)題后只需執(zhí)行 %debug 命令,即可執(zhí)行想要運(yùn)行的任意代碼部分:



          上圖中發(fā)生了什么?


          • 我們有一個(gè)函數(shù),它以列表為輸入,并對(duì)所有的偶數(shù)取平方值。

          • 我們運(yùn)行函數(shù),但是出了些問(wèn)題。但是我們并不知道怎么回事!

          • 對(duì)該函數(shù)使用%debug 命令。

          • 讓調(diào)試器告訴我們 x 和 type(x) 的值。

          • 問(wèn)題顯而易見(jiàn):我們把'6'作為字符串輸入到函數(shù)中了!


          這對(duì)于更復(fù)雜的函數(shù)非常有用。


          3.%store:在 notebook 之間傳遞變量


          這個(gè)命令也很酷。


          假設(shè):你花了一些時(shí)間清洗 notebook 中的數(shù)據(jù),現(xiàn)在你想在另一個(gè) notebook 中測(cè)試一些功能,那么你是在同一個(gè) notebook 中實(shí)現(xiàn)該功能,還是保存數(shù)據(jù)并在另一個(gè) notebook 中加載數(shù)據(jù)呢?


          使用%store 命令后,這些操作都不需要!該命令將存儲(chǔ)變量,你可以在其他任意 notebook 中檢索該變量:



          • %store [variable] 存儲(chǔ)變量。

          • %store -r [variable] 讀取/檢索存儲(chǔ)變量。


          4.%who:列出所有全局變量


          你是否遇到過(guò),為變量賦值后卻忘記變量名的情況?或者不小心刪掉了負(fù)責(zé)為變量賦值的單元格?


          使用%who 命令,你可以得到所有全局變量的列表:



          5.%%time:計(jì)時(shí)魔法命令


          使用該命令可以獲取所有計(jì)時(shí)信息。只需對(duì)任意可執(zhí)行代碼應(yīng)用%%time 命令,你就可以得到如下輸出:



          6.%%writefile:向文件寫(xiě)入單元格內(nèi)容


          在 notebook 中寫(xiě)復(fù)雜函數(shù)或類,且想將其保存到專屬文件中時(shí),該魔法命令非常有用。只需為函數(shù)或類的單元格添加 %%writefile 前綴和想要保存到的文件名即可,如下:



          如上所示,我們可以將創(chuàng)建的函數(shù)保存到 utils.py 文件中,然后就可以隨意導(dǎo)入了。在其他 notebook 中也可以這樣,只要與 utils.py 文件屬于同一個(gè)目錄即可。


          4


          Jupyter中的格式編排


          這個(gè)工具很酷!Jupyter 考慮到 markdown 中存在 HTML / CSS 格式。以下是我最經(jīng)常使用的功能:


          1.藍(lán)色、時(shí)尚


          <div?class="alert alert-block alert-info">???This is <b>fancyb>!div>


          2.紅色、輕微慌張


          <div?class="alert alert-block alert-danger">??This is <b>baaaaadb>!div>


          3.綠色、平靜


          <div?class="alert alert-block alert-success">?This is <b>goooodb>!div>


          下圖展示了它們的運(yùn)行過(guò)程:



          當(dāng)你想以 Notebook 格式呈現(xiàn)一些發(fā)現(xiàn)時(shí),這非常有用!


          5


          Jupyter 快捷鍵


          想了解和學(xué)習(xí)鍵盤(pán)快捷鍵,你可以使用命令面板:Ctrl + Shift + P,獲取 notebook 所有功能的列表。下面選取了幾個(gè)最基礎(chǔ)的命令:


          • Esc:進(jìn)入命令模式。在命令模式內(nèi),你可以使用方向鍵在 notebook 內(nèi)進(jìn)行導(dǎo)航。


          在命令模式內(nèi):


          • A 和 B:在當(dāng)前單元格上方(Above)或下方(Below)插入新的單元格。

          • M:當(dāng)前單元格轉(zhuǎn)入 Markdown 狀態(tài)。

          • Y:當(dāng)前單元格轉(zhuǎn)入 code 狀態(tài)。

          • D,D:刪除當(dāng)前單元格。

          • Enter:當(dāng)前單元格回到編輯模式。


          在編輯模式內(nèi):


          • Shift + Tab:為你在當(dāng)前單元格中鍵入的對(duì)象提供文檔字符串(文檔),持續(xù)使用該快捷鍵,可循環(huán)使用文檔模式。

          • Ctrl + Shift + -:在光標(biāo)所在處分割當(dāng)前單元格。

          • Esc + F:查找并替換代碼(不包括輸出)。

          • Esc + O:切換單元格輸出。


          選擇多個(gè)單元格:


          • Shift + Down 和 Shift + Up:選中下方或上方的單元格。

          • Shift + M:合并選中單元格。


          注意:選中多個(gè)單元格后,你可以批量執(zhí)行刪除/復(fù)制/剪切/粘貼/運(yùn)行操作。


          6


          在 Jupyter(或 IPython)中使一個(gè)單元同時(shí)有多個(gè)輸出


          想展示 pandas DataFrame 的 .head() 和 .tail(),但由于創(chuàng)建運(yùn)行 .tail() 方法的額外代碼單元過(guò)于麻煩而不得不中途放棄,你是否有過(guò)這樣的經(jīng)歷?現(xiàn)在不用怕了,你可以使用以下代碼行展示你想展示的輸出:


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


          下圖展現(xiàn)了多個(gè)輸出的結(jié)果:



          7


          為 Jupyter Notebook 即時(shí)創(chuàng)建幻燈片


          使用 RISE,你可以僅通過(guò)一次按鍵將 Jupyter Notebook 即時(shí)轉(zhuǎn)變?yōu)榛脽羝?。而?notebook 仍然處于活躍狀態(tài),你可以在展示幻燈片的同時(shí)執(zhí)行實(shí)時(shí)編碼!


          要想使用該工具,你只需通過(guò) conda 或 pip 安裝 RISE 即可。


          conda install?-c conda-forge rise


          或者


          pip install?RISE


          現(xiàn)在,你可以點(diǎn)擊新按鈕,為 notebook 創(chuàng)建不錯(cuò)的幻燈片了:



          -?END -

          本文為轉(zhuǎn)載分享&推薦閱讀,若侵權(quán)請(qǐng)聯(lián)系后臺(tái)刪除

          瀏覽 80
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(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 | 四虎影院无码 | 国产剧情一区二区av在线观看 | 在线亚洲黄色电影 | 国产精品大香蕉娱乐在线 |