當前位置:
首頁 > 知識 > Jupyter Notebook數據科學高效技巧!

Jupyter Notebook數據科學高效技巧!

當我學習有關深度學習的優秀的課程時,我學到了很多適用於通用軟體工程的乾貨。我寫這篇文章是為了總結這些技巧並與你分享。


1.Jupyter Notebook拓展

標準的Jupyter Notebook很不錯,但是還有更多的擴展功能可以幫助你完成工作,並且可以將許多功能結合在一起。

Install Jupyter extension package

你可以在這裡找到更多Jupyter主題。安裝配置器後,你會看到有一個新的「Nbextensions」 選項卡。獲取這些項目打勾

1.Autopep8

2.Collapsible Headings

3.Gist-it

A. Collapsible Headings

現在你可以摺疊你的筆記本,而不是滾動無窮的代碼。根據我的經驗,在進行探索性數據分析和繪製圖表時,我寫了很多不幹凈的代碼,我必須非常努力地滾動才能到達目的地。你可以展開單元格或摺疊單元格以使其更清晰。我想你甚至可以做一個目錄(我還沒有嘗試過這個擴展)。

B. Gist-it

如果你以前使用過Gist,它基本上是一個讓你共享筆記本的地方。當你想要共享你的代碼時,這是非常有用的,特別是當你有bug並且想要共享它的時候。只要按一下按鈕,一切就會在幾秒鐘內完成。

默認情況下,它將發布一個匿名的Gist,如果你想用Github帳戶發布它,你需要生成一個令牌認證。主要的區別是,如果你用自己的帳號發表文章,你可以編輯你的要點。

我在這篇文章中使用的筆記本在此。

https://gist.github.com/a0d020c17ce1715bf1d031b1cb8a9fa4

C. Autopep8

造型很重要,但也很無聊。如果你不想太用力,只要按一下這個小按鈕,它就會為你做所有的間隔!(PEP8是Python代碼的風格指南)


2.把時間花在你的任務上,並從中吸取教訓!

我一直在聲明循環之前的開始時間,減去當前時間來獲得運行時間。這並沒有錯,但你可以讓它變得更容易。使用內置的魔法命令。它們對你來說可能不自然,但使用起來真的很方便。(魔法命令以%開始)

讓我們從一個簡單的函數開始。它計算的是最後一個小於n的Fibonacci數。

你可以使用%time來計時一次運行或函數%timeit來計時,並得到平均值和標準偏差。這對於這些簡單的函數很有用,那麼調用另一個函數的函數呢?

這裡是%prun,我創建了一個虛函數,可以很長時間調用fib1()。你可以看到循環確實花了一些時間,但大部分時間都花在了fib1()上。


3.Cython

Cython是一個允許你用python編譯C的包,這是numpy和pandas速度很快的主要原因。確保你已經通過Cython安裝

在不改變任何代碼的情況下,你可以獲得即時的雙重性能!這很好,但一點也不神奇。

如果你稍微修改一下腳本,看看你能實現什麼。如果你對C編程有一些經驗,你可能知道,當我們聲明一個變數時,我們需要定義一個數據類型。這個腳本確實改變了一點,因為像這樣的操作對於Python來說是獨一無二的,C語言沒有這個特性。因此,我們需要分配一個臨時變數來存儲該值。

(感謝James Martini先前指出了fib3中的一些錯誤!)

從582到48納秒,速度提高了10倍,而且你實際上不需要更改很多腳本。對我來說,這是令人興奮的,因為大部分時間你都可以使用慢速代碼。你所關心的是一次次被呼來喚去的。使用%prun和一些Cython代碼,可以在不編譯任何文件的情況下獲得C速度。

除了魔法命令,我發現在Jupyter做shell命令也是非常有用的。(魔法命令以%開始,shell命令以!開始)

推薦《人工智慧系列課》


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI講堂 的精彩文章:

一文讀懂圖像局部特徵點檢測演算法!
北大新技術:利用WiFi設備進行人體行為識別!

TAG:AI講堂 |