介紹
IPython 是一個 python 的互動式 shell,比默認的python shell 好用得多,支持變數自動補全,自動縮進,支持 bash shell 命令,內置了許多很有用的功能和函式。
IPython 是基於BSD 開源的。
IPython 為互動式計算提供了一個豐富的架構,包含:
•強大的互動式 shell
•Jupyter 核心
•互動式的數據可視化工具
•靈活、可嵌入的解釋器
•易於使用,高性能的並行計算工具
安裝
在ubuntu 下只要 sudo apt-get install ipython 就裝好了,通過 ipython 啟動。
使用
下面是 ipython 中幾個簡單好用的 magic函式:
%bg function把 function 放到後台執行,例如: %bg myfunc(x, y,z=1),之後可以用jobs將其結果取回。myvar = jobs.result(5) 或 myvar =jobs[5].result。另外,jobs.status() 可以查看現有任務的狀態。
%ed 或 %edit編輯一個檔案並執行,如果只編輯不執行,用 ed -x filename 即可。
%env顯示環境變數
%hist 或 %history顯示歷史記錄
%macro name n1-n2 n3-n4 ... n5 .. n6 ...創建一個名稱為 name 的宏,執行 name 就是執行 n1-n2 n3-n4 ... n5 .. n6 ...這些代碼。
%pwd顯示當前目錄
%pycat filename用語法高亮顯示一個 python 檔案(不用加.py後綴名)
%save filename n1-n2 n3-n4 ... n5 .. n6 ...將執行過多代碼保存為檔案
%time statement計算一段代碼的執行時間
%timeit statement自動選擇重複和循環次數計算一段代碼的執行時間,太方便了。
另外,ipython 中用 ! 表示執行 shell 命令,用 $ 將 python 的變數轉化成shell 變數。通過這種兩個符號,我們就可以做到和 shell命令之間的互動,可以非常方便地做許多複雜的工作。比如你可以很方便地創建一組目錄:
for i in range(10):
s = "dir%s" % i
!mkdir $s
不過寫法上還是有一些限制,$ 後面只能跟變數名,不能直接寫複雜表達式,$"dir%s"%i 就是錯誤的寫法了,所以要先完全產生python 的變數以後再用。像
for i in !ls: print i
這樣的寫法也是錯的,可以這樣:
a = !ls
for i in a: print i
還有一點需要說明,就是執行普通的 shell 命令中如果有 $的話需要用兩個 $。比如原來的echo $PATH現在得寫成!echo$$PATH。
在較新的ipython版本中,添加了ipython notebook的功能,彌補了ipython shell下代碼不易保存等缺點,並且在使用 --pylab inline選項後,可以在代碼執行後立即顯示運行結果(包括圖片,數據表格等),因此在數據分析中運用十分廣泛。
摘自:大頭技術文檔