《利用Python進行數據分析》學習筆記系列——IPython

本文主要介紹IPython這樣一個交互工具的基本用法。

1. 簡介

  IPython是《利用Python進行數據分析》一書中主要用到的Python開發環境,簡單來說是對原生python交互環境的增強。作者進行Python開發最經典的開發環境搭配是:IPython外加一個文本編輯器,其實我自己平時寫python代碼也差不多是這樣的開發環境:Windows系統下是IPython加notepad++,Linux系統下是IPython加vim,寫起代碼來體驗很流暢,很容易獲取到那種“流體驗”。
  書中講到,IPython的設計目的是在交互式計算和軟件開發這兩個方面最大化地提高生產力,它鼓勵一種“執行-探索”的工作模式,支持matplotlib等庫的繪圖操作。同時IPython還提供一個基於WEB的交互式瀏覽器開發環境,用起來也很不錯。

2. 基礎用法

1. Tab鍵自動補全

  和其他命令行環境的Tab自動補全功能類似,不過會隱藏那些以下劃線開頭的方法和屬性(爲了防止內容太多)。厲害的是哪怕是在python字符串中也可以自動補全類似文件路徑的字符串。比如:
這裏寫圖片描述

2. 內省

在方法或變量的前面或後面加一個問號(?)就可以將有關該方法或變量的一些通用信息都顯示出來,這叫做內省;使用”??”還可以顯示函數的源代碼。見下:
這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

3. ”?”和通配符結合使用搜索命名空間

這裏寫圖片描述

4. %run命令

%run xxx.py:可以執行一個python腳本xxx.py,腳本是在一個空的命名空間中運行的。成功運行腳本後,在IPython中可以使用腳本中定義的變量和函數。
如果希望在腳本中能訪問IPython之前定義的變量和函數,那麼需要用-i參數執行:
%run -i xxx.py

5. 執行剪貼板中的代碼

%paste:直接執行。
%cpaste:可以修改後再執行。

6. IPython鍵盤快捷鍵

(1)Ctrl + P或上箭頭:後向搜索命令歷史記錄中以當前輸入的文本開頭的命令。
(2)Ctrl + N或下箭頭:前向搜索命令歷史記錄中以當前輸入的文本開頭的命令。
(3)Ctrl + R:按行讀取的反向歷史搜索(部分匹配)。
(4)Ctrl + Shift + V:從剪貼板中粘貼文本。
(5)Ctrl + C:終止當前正在執行的代碼。
(6)Ctrl + A:將光標移動到行首。
(7)Ctrl + E:將光標移動到行尾。
(8)Ctrl + K:刪除從光標開始到行尾的文本。
(9)Ctrl + U:刪除從行首到光標處的文本。
(10)Ctrl + F:將光標向前移動一個字符。
(11)Ctrl + B:將光標向後移動一個字符。
(12)Ctrl + L:清屏。

7. 魔術命令

以”%”開頭的一些命令,比如%run就是一個魔術命令,可以使用%run?來查看其詳細用法。
(1)%quickref:顯示IPython的快速參考。
(2)%magic:顯示所有魔術命令的詳細文檔。
(3)%debug:從最新的異常跟蹤的底部進入交互式調試器。
(4)%hist:打印命令的輸入(可選輸出)歷史。
(5)%pdb:在異常發生後自動進入調試器。
(6)%paste:執行剪貼板中的python代碼。
(7)%cpaste:打開一個特殊特提示符以便手工粘貼待執行的python代碼。
(8)%reset:刪除interactive命名空間中的全部變量/名稱。
(9)%page OBJECT:通過分頁器打印輸出OBJECT。
(10)%run xxx.py:執行xxx.py腳本文件。
(11)%prun statement:通過cProfile執行statement,並打印分析器的輸出結果。
(12)%time statement:計算statement的執行時間。
(13)%timeit statement:多次執行(次數可以通過參數配置)statement以計算平均執行時間。對那些執行時間非常短的代碼很有用。
(14)%who:顯示interactive命名空間中定義的變量,如下:
這裏寫圖片描述

(15)%who_ls:顯示interactive命名空間中定義的變量(列表形式),如下:
這裏寫圖片描述

(16)%whos:顯示interactive命名空間中定義的變量(詳情形式),如下:
這裏寫圖片描述

(17)%xdel variable:刪除變量variable,並嘗試清除其在IPython中的對象上的一切引用。

8. 打開pylab模式:

啓動IPython時使用:ipython --pylab,這樣就可以在IPython命令行中進行繪圖等操作了,如下:
這裏寫圖片描述

9. 輸入和輸出變量

最近的兩個輸出結果分別保存在下劃線和雙下劃線兩個變量中,如下:
這裏寫圖片描述

10. 記錄輸入輸出過的變量

某一行的輸入變量:_iX(X爲行號)
某一行的輸出變量:_X(X爲行號)
見下:
這裏寫圖片描述

11. 清理命名空間

當處理大數據集時,IPython的輸入輸出歷史會影響到大量的變量的內存釋放,所以及時用%xdel和%reset清理還是很有必要的。

12. 記錄日誌

記錄輸入和輸出日誌:%logstart -o,將記錄整個會話的日誌(包括之前的命令),使用詳情可以用?命令查看。

13. 與操作系統交互

(1)!cmd:執行操作系統的shell命令。
(2)output = !cmd:執行shell命令,並將結果存到output中。
(3)%alias new_name cmd:爲系統shell命令定義別名。
(4)%bookmark:使用IPython的目錄書籤系統。
(5)%cd directory:將工作目錄切換到directory路徑。
(6)%pwd:打印當前的工作目錄。
(7)%pushd directory:將當前目錄入棧,並轉向目標目錄。
(8)%popd:彈出棧頂目錄,並轉向該目錄。
(9)%dirs:返回一個含有當前目錄棧的列表。
(10)%dhist:打印目錄訪問歷史。
(11)%env:以dict形式返回系統環境變量。

14. 在執行shell命令時使用IPython環境中的變量

如下:
這裏寫圖片描述

15. 使用書籤

如下:
這裏寫圖片描述

3. 進階用法

1. 代碼執行時間分析

命令:%time%timeit,如下:
這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

2. IPython HTML Notebook

HTML Notebook是在瀏覽器中使用的交互式環境,現在最新版本又叫做Jupyter Notebook,功能很強大,完全是一個B/S模式的IDE,體驗非常棒。可以用以下命令打開:
(1)安裝notebook:pip install notebook
(2)在命令行中打開notebook:ipython notebook(或者:jupyter notebook
(3)出現一個帶token的url,把url複製到瀏覽器中,即出現如下頁面:
這裏寫圖片描述

(4)點擊右上角的”New”—>python 2,即可打開交互式環境:
這裏寫圖片描述

(5)在輸入行中輸入%pylab inline命令並執行(Shift + Enter快捷鍵),即可無縫集成matplotlib的繪圖功能到頁面中,如圖:
這裏寫圖片描述

注:Jupyter Notebook的更詳細用法見另一篇博文:《利用Python進行數據分析》學習筆記系列——Jupyter Notebook

3. IPython個性化配置

配置文件在如下目錄:
Unix:~/.config/ipython/
Windows:%HOME%/.ipython/
根據配置文件中的註釋,即可修改相應的配置。

發佈了23 篇原創文章 · 獲贊 20 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章