選自TowardsDataScience,作者:Perter Nistrup,機器之心編譯,參與:魔王。
1. Pandas Profiling
2. 使用 Cufflinks 和 Plotly 繪製 Pandas 資料
4. Jupyter 中的格式編排
5. Jupyter 快捷鍵
7. 為 Jupyter Notebook 即時建立幻燈片
1. Pandas Profiling
該工具效果明顯。下圖展示了呼叫 df.profile_report() 這一簡單方法的結果:
使用該工具只需安裝和匯入 Pandas Profiling 包。
2. 使用 Cufflinks 和 Plotly 繪製 Pandas 資料
這已經很好了,不過是否可以繪製一個互動式、可縮放、可擴充套件的全景圖呢?是時候讓 Cufflinks* *出馬了!(Cufflinks 基於 Plotly 做了進一步的包裝。)
在環境中安裝 Cufflinks,只需在終端中執行! pip install cufflinks --upgrade 即可。檢視下圖:
注意,上圖唯一改變的是 Cufflinks cf.go_offline() 的匯入和設定,它將 .plot() 方法變為 .iplot()。
其他方法如 .scatter_matrix() 也可以提供非常棒的視覺化結果:
Cufflinks 文件:https://plot.ly/ipython-notebooks/cufflinks/
Plotly 文件:https://plot.ly/
3. IPython 魔術命令
%lsmagic:找出全部命令
%debug:互動式 debug
這可能是我最常使用的魔術命令了。
大部分資料科學家都遇到過這種情況:執行的程式碼塊一直 break,你絕望地寫了 20 個 print() 語句,想輸出每個變數的內容。然後,當你最終修復問題後,你還得返回並再次刪除所有 print() 語句。
不過以後再也不用這樣了。遇到問題後只需執行 %debug 命令,即可執行想要執行的任意程式碼部分:
上圖中發生了什麼?
我們有一個函式,它以列表為輸入,並對所有的偶數取平方值。
我們執行函式,但是出了些問題。但是我們並不知道怎麼回事!
對該函式使用%debug 命令。
讓偵錯程式告訴我們 x 和 type(x) 的值。
問題顯而易見:我們把'6'作為字串輸入到函式中了!
這對於更復雜的函式非常有用。
%store:在 notebook 之間傳遞變數
這個命令也很酷。假設你花了一些時間清洗 notebook 中的資料,現在你想在另一個 notebook 中測試一些功能,那麼你是在同一個 notebook 中實現該功能,還是儲存資料並在另一個 notebook 中載入資料呢?使用%store 命令後,這些操作都不需要!該命令將儲存變數,你可以在其他任意 notebook 中檢索該變數:
%store [variable] 儲存變數。
%store -r [variable] 讀取/檢索儲存變數。
%who:列出所有全域性變數。
你是否遇到過,為變數賦值後卻忘記變數名的情況?或者不小心刪掉了負責為變數賦值的單元格?使用%who 命令,你可以得到所有全域性變數的列表:
使用該命令可以獲取所有計時資訊。只需對任意可執行程式碼應用%%time 命令,你就可以得到如下輸出:
%%writefile:向檔案寫入單元格內容
在 notebook 中寫複雜函式或類,且想將其儲存到專屬檔案中時,該魔法命令非常有用。只需為函式或類的單元格新增 %%writefile 字首和想要儲存到的檔名即可:
如上所示,我們可以將建立的函式儲存到 utils.py 檔案中,然後就可以隨意匯入了。在其他 notebook 中也可以這樣,只要與 utils.py 檔案屬於同一個目錄即可。
4. Jupyter 中的格式編排
這個工具很酷!Jupyter 考慮到 markdown 中存在 HTML / CSS 格式。以下是我最經常使用的功能:
藍色、時尚:
<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>複製程式碼
5. Jupyter 快捷鍵
想了解和學習鍵盤快捷鍵,你可以使用命令皮膚:Ctrl + Shift + P,獲取 notebook 所有功能的列表。下面選取了幾個最基礎的命令:
Esc:進入命令模式。在命令模式內,你可以使用方向鍵在 notebook 內進行導航。
A 和 B:在當前單元格上方(Above)或下方(Below)插入新的單元格。
M:當前單元格轉入 Markdown 狀態。
Y:當前單元格轉入 code 狀態。
D,D:刪除當前單元格。
Enter:當前單元格回到編輯模式。
Shift + Tab:為你在當前單元格中鍵入的物件提供文件字串(文件),持續使用該快捷鍵,可迴圈使用文件模式。
Ctrl + Shift + -:在游標所在處分割當前單元格。
Esc + F:查詢並替換程式碼(不包括輸出)。
Esc + O:切換單元格輸出。
選擇多個單元格:
Shift + Down 和 Shift + Up:選中下方或上方的單元格。
Shift + M:合併選中單元格。
注意,選中多個單元格後,你可以批量執行刪除/複製/剪下/貼上/執行操作。
6. 在 Jupyter(或 IPython)中使一個單元同時有多個輸出
from IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"複製程式碼
7. 為 Jupyter Notebook 即時建立幻燈片
使用 RISE,你可以僅通過一次按鍵將 Jupyter Notebook 即時轉變為幻燈片。而且 notebook 仍然處於活躍狀態,你可以在展示幻燈片的同時執行實時編碼!
conda install -c conda-forge rise複製程式碼
pip install RISE複製程式碼
現在,你可以點選新按鈕,為 notebook 建立不錯的幻燈片了: