[转]IPython介绍
?
1. IPython介紹
?
ipython是一個(gè)python的交互式shell,比默認(rèn)的python shell好用得多,支持變量自動(dòng)補(bǔ)全,自動(dòng)縮進(jìn),支持bash shell命令,內(nèi)置了許多很有用的功能和函數(shù)。學(xué)習(xí)ipython將會(huì)讓我們以一種更高的效率來使用python。同時(shí)它也是利用Python進(jìn)行科學(xué)計(jì)算和交互可視化的一個(gè)最佳的平臺(tái)。
?
IPython提供了兩個(gè)主要的組件:
?
1.一個(gè)強(qiáng)大的python交互式shell
2.供Jupyter notebooks使用的一個(gè)Jupyter內(nèi)核(IPython notebook)
?
IPython的主要功能如下:
?
1.運(yùn)行ipython控制臺(tái)
2.使用ipython作為系統(tǒng)shell
3.使用歷史輸入(history)
4.Tab補(bǔ)全
5.使用%run命令運(yùn)行腳本
6.使用%timeit命令快速測(cè)量時(shí)間
7.使用%pdb命令快速debug
8.使用pylab進(jìn)行交互計(jì)算
9.使用IPython Notebook
?
2. 安裝IPython
?
ipython支持Python2.7版本或者3.3以上的版本,我用的是windows下的python 3.4版本。
?
安裝ipython很簡(jiǎn)單,可以直接使用pip管理工具即可:
?
pip install ipython?
這條命令會(huì)自動(dòng)安裝IPython以及它的各種依賴包
?
如果我們也想在notebook中或者在Qt console中使用IPython,我們還需要安裝Jupyter,如下命令:
?
pip install jupyter?
另外我們還可能需要安裝一些用到的庫(kù):
?
NumPy高性能多維數(shù)組矢量運(yùn)算庫(kù):
?
pip install numpy?
Matplotlib繪圖以及交互式可視化:
?
pip install matplotlib?
等等。
?
3. 交互式使用IPython
?
IPython支持所有python的標(biāo)準(zhǔn)輸入輸出,也就是我們?cè)贗DLE中或者Python shell中能用的,在IPython中都能夠使用,唯一的不同之處使ipython會(huì)使用In [x]和Out [x]表示輸入輸出,并表示出相應(yīng)的序號(hào)。
?
其實(shí)后面我們會(huì)知道,In和Out是兩個(gè)保存歷史信息的變量
?
進(jìn)入IPython也非常簡(jiǎn)單,直接win + R打開運(yùn)行,然后輸入ipython即可進(jìn)入IPython shell交互框;
?
?
?
或者輸入ipython qtconsole進(jìn)入ipython圖形交互界面:
?
?
?
除此之外,ipython支持一些更高級(jí)的功能。
?
3.1 Tab鍵自動(dòng)補(bǔ)全
?
在shell中輸入表達(dá)式時(shí),只要按下Tab鍵,當(dāng)前命名空間中任何與輸入的字符串相匹配的變量(對(duì)象或者函數(shù)等)就會(huì)被找出來:
?
?
這時(shí)可以通過鍵盤的向下翻頁(yè)鍵找到自己需要的對(duì)象。
?
3.2 內(nèi)省
?
在變量的前面或者后面加上一個(gè)問號(hào)?,就可以將有關(guān)該對(duì)象的一些通用信息顯示出來,這就叫做對(duì)象的內(nèi)省。
?
?
如果對(duì)象是一個(gè)函數(shù)或者實(shí)例方法,則它的docstring也會(huì)被顯示出來:
?
定義方法如下:
?
?
這時(shí)查看該方法的內(nèi)省信息:
?
?
如果使用兩個(gè)問號(hào)??,那么還可以顯示出該方法的源代碼:
?
?
另外,我們可以使用通配符字符串查找出所有與該通配符字符串相匹配的名稱,比如我們查找re模塊下所有的包含find的函數(shù):
?
?
3.3 使用歷史命令history
?
在IPython shell中,使用歷史命令可以簡(jiǎn)單地使用上下翻頁(yè)鍵即可,另外我們也可以使用hist命令(或者h(yuǎn)istory命令)查看所有的歷史輸入。(正確的做法是使用%hist,在這里,%hist也是一個(gè)魔法命令)
?
?
如果在hist命令之后加上-n,即hist -n也可以顯示出輸入的序號(hào):
?
?
在任何的交互會(huì)話中,我們的輸入歷史和輸出歷史都會(huì)被保存在In和Out變量中,并被序號(hào)進(jìn)行索引。
?
另外,_,__,___和_i,_ii,_iii變量保存著最后三個(gè)輸出和輸入對(duì)象。_n和_in(這里的n表示具體的數(shù)字)變量返回第n個(gè)輸出和輸入的歷史命令。比如:
?
?
3.4 使用%run命令運(yùn)行腳本
?
在ipython會(huì)話環(huán)境中,所有文件都可以通過%run命令當(dāng)做Python程序來運(yùn)行,輸入%run 路徑+python文件名稱即可
?
3.5 使用%timeit命令快速測(cè)量代碼運(yùn)行時(shí)間
?
在一個(gè)交互式會(huì)話中,我們可以使用%timeit魔法命令快速測(cè)量代碼運(yùn)行時(shí)間。相同的命令會(huì)在一個(gè)循環(huán)中多次執(zhí)行,多次運(yùn)行時(shí)長(zhǎng)的平均值作為該命令的最終評(píng)估時(shí)長(zhǎng)。-n 選項(xiàng)可以控制命令在單詞循環(huán)中執(zhí)行的次數(shù),-r選項(xiàng)控制執(zhí)行循環(huán)的次數(shù)。
?
?
3.6 使用%debug命令進(jìn)行快速debug
?
ipython帶有一個(gè)強(qiáng)大的調(diào)試器。無論何時(shí)控制臺(tái)拋出了一個(gè)異常,我們都可以使用%debug魔法命令在異常點(diǎn)啟動(dòng)調(diào)試器。接著你就能調(diào)試模式下訪問所有的本地變量和整個(gè)棧回溯。使用u和d向上和向下訪問棧,使用q退出調(diào)試器。在調(diào)試器中輸入?可以查看所有的可用命令列表。
?
我們也可以使用%pdb魔法命令來激活I(lǐng)Python調(diào)試器,這樣,每當(dāng)異常拋出時(shí),調(diào)試器就會(huì)自動(dòng)運(yùn)行。
?
3.7 使用Pylab進(jìn)行交互式計(jì)算
?
%pylab魔法命令可以使Numpy和matplotlib中的科學(xué)計(jì)算功能生效,這些功能被稱為基于向量和矩陣的高效操作,交互可視化特性。它能夠讓我們?cè)诳刂婆_(tái)進(jìn)行交互式計(jì)算和動(dòng)態(tài)繪圖。
?
?
在該示例中,我們首先定義了一個(gè)-10到10的線性空間中的1000個(gè)數(shù)值的向量,接著我們繪制了(x,sin(x))圖像,這樣我們就成功繪制出了sin(x)的函數(shù)圖像:
?
?
3.8 在IPython中使用系統(tǒng)shell
?
我們可以在IPython中直接使用系統(tǒng)shell,并獲取讀取結(jié)果作為一個(gè)Python字符串列表。為了實(shí)現(xiàn)這種功能,我們需要使用感嘆號(hào)!作為shell命令的前綴。比如現(xiàn)在在我的windows系統(tǒng)中,直接在IPython中ping百度:
?
?
一個(gè)有趣的事情是,在IPython中調(diào)用系統(tǒng)shell可以再次進(jìn)入一個(gè)新的IPython shell中,如下:
?
?
當(dāng)然,一般沒人會(huì)這么干。
?
4.使用IPython Notebook
?
IPython Notebook使用瀏覽器作為界面,向后臺(tái)的IPython服務(wù)器發(fā)送請(qǐng)求,并顯示結(jié)果。在瀏覽器的界面中使用單元(Cell)保存各種信息。Cell有多種類型,需要強(qiáng)調(diào)的是,它也支持MarkDown語法,所以可以有MarkDown格式化文本單元,也可以有表示代碼的Code單元。
?
IPython Notebook有一個(gè)重要的特點(diǎn)就是:可重復(fù)性的互動(dòng)計(jì)算,這意味著我們可以重復(fù)更改并且執(zhí)行曾經(jīng)的輸入記錄。它可以保存成其他很多格式,比如Python腳本,HTML,PDF等,所以它可以記錄我們的演算過程。很多課程,博客以及書籍都是用Notebook寫的。
?
4.1 安裝并運(yùn)行
?
如果執(zhí)行了上文中IPython的安裝過程,IPython Notebook已經(jīng)算是安裝好了。怎么測(cè)試呢?Win + R打開運(yùn)行窗口,輸入ipython notebook,如果正確安裝的話,這個(gè)命令就會(huì)默認(rèn)在本地8888端口啟動(dòng)一個(gè)web服務(wù),并自動(dòng)打開瀏覽器,打開http://localhost:8888/tree頁(yè)面,在這個(gè)頁(yè)面我們可以看到當(dāng)前目錄下的所有文件夾以及ipynb文件。
?
當(dāng)然,如果不想在當(dāng)前默認(rèn)目錄啟動(dòng)該Web服務(wù)器的話,就在cmd窗口下切換目錄之后再運(yùn)行ipython notebook:
?
?
自動(dòng)打開如下頁(yè)面:
?
?
我們可以點(diǎn)擊當(dāng)前目錄下的Notebook文件進(jìn)行編輯,也可以新建Notebook:
?
?
編輯Notebook可以選擇代碼模式和文本編輯模式,也可以導(dǎo)出各種不同格式的文件:
?
?
由于IPython Notebook是基于Web服務(wù)模式的,所以我們可以在遠(yuǎn)程服務(wù)器打開IPython服務(wù)器,在本地客戶端啟動(dòng)IPython Web交互界面,這樣可以很方便地操作遠(yuǎn)程數(shù)據(jù)
?
4.2 操作
?
在一個(gè)輸入框即Cell中使用回車即Enter鍵,表示換行,也就是說一個(gè)Cell中可以輸入多條語句。
?
一個(gè)Cell中的命令可以由兩種方式運(yùn)行:
?
?
我們也可以使用上面的菜單欄和工具欄對(duì)Cell進(jìn)行各種增刪復(fù)制粘貼等操作。
---------------------
作者:KLeonard
來源:CSDN
原文:https://blog.csdn.net/gavin_john/article/details/53086766
版權(quán)聲明:本文為作者原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!
內(nèi)容解析By:CSDN,CNBLOG博客文章一鍵轉(zhuǎn)載插件
總結(jié)
以上是生活随笔為你收集整理的[转]IPython介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# .Net 视频下载功能(本机文件)
- 下一篇: python 绘制分形树