本文枚舉了一些提升或加速一樣平常數(shù)據(jù)剖析事情的技巧,包羅:
1. Pandas Profiling
2. 使用 Cufflinks 和 Plotly 繪制 Pandas 數(shù)據(jù)
3. IPython 魔術(shù)下令
4. Jupyter 中的名堂編排
5. Jupyter 快捷鍵
6. 在 Jupyter(或 IPython)中使一個單元同時有多個輸出
7. 為 Jupyter Notebook 即時建設(shè)幻燈片
1. Pandas Profiling
該工具效果顯著。下圖展示了挪用 df.profile_report() 這一簡樸要領(lǐng)的效果:
使用該工具只需安裝和導(dǎo)入 Pandas Profiling 包。
本文不再詳述這一工具,如欲相識更多,請閱讀:
https://towardsdatascience.com/exploring-your-data-with-just-1-line-of-python-4b35ce21a82d
2. 使用 Cufflinks 和 Plotly 繪制 Pandas 數(shù)據(jù)
「履歷富厚的」數(shù)據(jù)科學(xué)家或數(shù)據(jù)剖析師大多對 matplotlib 和 pandas 很熟悉。也就是說,你只需挪用 .plot() 要領(lǐng),即可快速繪制簡樸的 pd.DataFrame 或 pd.Series:
有點無聊?
這已經(jīng)很好了,不外是否可以繪制一個交互式、可縮放、可擴(kuò)展的全景圖呢?是時間讓 Cufflinks* *出馬了!(Cufflinks 基于 Plotly 做了進(jìn)一步的包裝。)
在情形中安裝 Cufflinks,只需在終端中運(yùn)行! pip install cufflinks --upgrade 即可。審查下圖:
效果許多幾何了!
注重,上圖*****改變的是 Cufflinks cf.go_offline() 的導(dǎo)入和設(shè)置,它將 .plot() 要領(lǐng)變?yōu)?.iplot()。
其他要領(lǐng)如 .scatter_matrix() 也可以提供很是棒的可視化效果:
需要做大量數(shù)據(jù)可視化事情的朋儕,可以閱讀 Cufflinks 和 Plotly 的文檔,發(fā)現(xiàn)更多要領(lǐng)。
Cufflinks 文檔:https://plot.ly/ipython-notebooks/cufflinks/
Plotly 文檔:https://plot.ly/
3. IPython 魔術(shù)下令
IPython 的「魔術(shù)」是 IPython 基于 Python 尺度語法的一系列提升。魔術(shù)下令包羅兩種要領(lǐng):行魔術(shù)下令(line magics):以 % 為前綴,在單個輸入行上運(yùn)行;單元格魔術(shù)下令(cell magics):以 %% 為前綴,在多個輸入行上運(yùn)行。下面枚舉了 IPython 魔術(shù)下令提供的一些有用功效:
%lsmagic:找出全手下令
若是你只記得一個魔術(shù)下令,那必須得是這一個。執(zhí)行 %lsmagic 下令將提供所有可用魔術(shù)下令的列表:
%debug:交互式 debug
這可能是我最常使用的魔術(shù)下令了。
大部門數(shù)據(jù)科學(xué)家都遇到過這種情形:執(zhí)行的代碼塊一直 break,你無望地寫了 20 個 print() 語句,想輸出每個變量的內(nèi)容。然后,當(dāng)你最終修復(fù)問題后,你還得返回并再次刪除所有 print() 語句。
不外以后再也不用這樣了。遇到問題后只需執(zhí)行 %debug 下令,即可執(zhí)行想要運(yùn)行的恣意代碼部門:
上圖中發(fā)生了什么?
我們有一個函數(shù),它以列表為輸入,并對所有的偶數(shù)取平方值。
我們運(yùn)行函數(shù),可是出了些問題??墒俏覀儾⒉恢涝趺椿厥?
對該函數(shù)使用%debug 下令。
讓調(diào)試器告訴我們 x 和 type(x) 的值。
問題顯而易見:我們把'6'作為字符串輸入到函數(shù)中了!
這對于更重大的函數(shù)很是有用。
%store:在 notebook 之間轉(zhuǎn)達(dá)變量
這個下令也很酷。假設(shè)你花了一些時間洗濯 notebook 中的數(shù)據(jù),現(xiàn)在你想在另一個 notebook 中測試一些功效,那么你是在統(tǒng)一個 notebook 中實現(xiàn)該功效,照舊生計數(shù)據(jù)并在另一個 notebook 中加載數(shù)據(jù)呢?使用%store 下令后,這些操作都不需要!該下令將存儲變量,你可以在其他恣意 notebook 中檢索該變量:
%store [variable] 存儲變量。
%store -r [variable] 讀取/檢索存儲變量。
%who:列出所有全局變量。
你是否遇到過,為變量賦值后卻遺忘變量名的情形?或者不小心刪掉了認(rèn)真為變量賦值的單元格?使用%who 下令,你可以獲得所有全局變量的列表:
%%time:計時邪術(shù)下令
使用該下令可以獵取 所有計時信息。只需對恣意可執(zhí)行代碼應(yīng)用%%time 下令,你就可以獲得如下輸出:
%%writefile:向文件寫入單元格內(nèi)容
在 notebook 中寫重大函數(shù)或類,且想將其生計到專屬文件中時,該邪術(shù)下令很是有用。只需為函數(shù)或類的單元格添加 %%writefile 前綴和想要生計到的文件名即可:
如上所示,我們可以將建設(shè)的函數(shù)生計到 utils.py 文件中,然后就可以隨意導(dǎo)入了。在其他 notebook 中也可以這樣,只要與 utils.py 文件屬于統(tǒng)一個目錄即可。
4. Jupyter 中的名堂編排
這個工具很酷!Jupyter 思量到 markdown 中存在 HTML / CSS 名堂。以下是我最經(jīng)常使用的功效:
藍(lán)色、時尚:
<div class="alert alert-block alert-info"> This is <b>fancy</b>!</div>
紅色、稍微張皇:
<div class="alert alert-block alert-danger"> This is <b>baaaaad</b>!</div>
綠色、清靜:
<div class="alert alert-block alert-success"> This is <b>gooood</b>!</div>
下圖展示了它們的運(yùn)行歷程:
當(dāng)你想以 Notebook 名堂泛起一些發(fā)現(xiàn)時,這很是有用!
5. Jupyter 快捷鍵
想相識和學(xué)習(xí)鍵盤快捷鍵,你可以使用下令面板:Ctrl + Shift + P,獵取 notebook 所有功效的列表。下面選取了幾個最基礎(chǔ)的下令:
Esc:進(jìn)入下令模式。在下令模式內(nèi),你可以使用偏向鍵在 notebook 內(nèi)舉行導(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)前單元格中鍵入的工具提供文檔字符串(文檔),一連使用該快捷鍵,可循環(huán)使用文檔模式。
Ctrl + Shift + -:在光標(biāo)所在處支解當(dāng)前單元格。
Esc + F:查找并替換代碼(不包羅輸出)。
Esc + O:切換單元格輸出。
選擇多個單元格:
Shift + Down 和 Shift + Up:選中下方或上方的單元格。
Shift + M:合并選中單元格。
注重,選中多個單元格后,你可以批量執(zhí)行刪除/復(fù)制/剪切/粘貼/運(yùn)行操作。
6. 在 Jupyter(或 IPython)中使一個單元同時有多個輸出
想展示 pandas DataFrame 的 .head() 和 .tail(),但由于建設(shè)運(yùn)行 .tail() 要領(lǐng)的稀奇代碼單元過于貧困而不得不中途放棄,你是否有過這樣的履歷?現(xiàn)在不用怕了,你可以使用以下代碼行展示你想展示的輸出:
from IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"
下圖展現(xiàn)了多個輸出的效果:
7. 為 Jupyter Notebook 即時建設(shè)幻燈片
使用 RISE,你可以僅通過一次按鍵將 Jupyter Notebook 即時轉(zhuǎn)變?yōu)榛脽羝?。而?notebook 仍然處于活躍狀態(tài),你可以在展示幻燈片的同時執(zhí)行實時編碼!
要想使用該工具,你只需通過 conda 或 pip 安裝 RISE 即可。
conda install -c conda-forge rise
或者
pip install RISE
現(xiàn)在,你可以點擊新按鈕,為 notebook 建設(shè)不錯的幻燈片了: