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