[轉]IPython介紹

?

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也可以顯示出輸入的序號:

?

這里寫圖片描述

?

在任何的交互會話中,我們的輸入歷史和輸出歷史都會被保存在InOut變量中,并被序號進行索引。

?

另外,_______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魔法命令在異常點啟動調試器。接著你就能調試模式下訪問所有的本地變量和整個棧回溯。使用ud向上和向下訪問棧,使用q退出調試器。在調試器中輸入?可以查看所有的可用命令列表。

?

我們也可以使用%pdb魔法命令來激活IPython調試器,這樣,每當異常拋出時,調試器就會自動運行。

?

3.7 使用Pylab進行交互式計算

?

%pylab魔法命令可以使Numpymatplotlib中的科學計算功能生效,這些功能被稱為基于向量和矩陣的高效操作,交互可視化特性。它能夠讓我們在控制臺進行交互式計算和動態繪圖。

?

這里寫圖片描述

?

在該示例中,我們首先定義了一個-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中的命令可以由兩種方式運行:

?

  1. Shift + Enter小格內的所有代碼將會在當前的IPython交互命名空間中運行,運行結果將會立即在輸入框下面的輸出區域顯示,且一個新的輸入框會出現。
  2. Ctrl + Enter組合鍵只會顯示運行結果而不會創建新的輸入框

?

我們也可以使用上面的菜單欄和工具欄對Cell進行各種增刪復制粘貼等操作。


---------------------
作者:KLeonard
來源:CSDN
原文:https://blog.csdn.net/gavin_john/article/details/53086766
版權聲明:本文為作者原創文章,轉載請附上博文鏈接!
內容解析By:CSDN,CNBLOG博客文章一鍵轉載插件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285427.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285427.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285427.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

.NET MAUI in Mac

點擊上方藍字關注我們(本文閱讀時間:4分鐘)概要本篇文章主要分享MAUI在m1芯片的設備上運行和支持情況,將我們寫好的MAUI程序編譯為支持mac平臺的版本。在m1芯片剛剛出來的時候有很多開發工具和應用程序對m1芯片的支持不是很友好&a…

30分鐘時長千行代碼《C#程序設計基礎》經典程序,C#菜鳥開發必備!

作者:劉一哥GIS(CSDN博客專家) 博客地址:https://geostorm.blog.csdn.net/ 劉一哥,多年研究地圖學、地理信息系統、遙感、攝影測量和GPS等應用,精通ArcGIS、MapGIS、ENVI、Erdas、CASS、Pix4d、CC、PhotoScan、Inpho、EPS、Globalmapper等專業軟件的應用,精通多門編程語…

前端開發中的SEO

前端開發中的SEO 什么是SEO SEO由英文Search Engine Optimization縮寫而來,中文意譯為“搜索引擎優化”。SEO是指從自然搜索結果獲得網站流量的技術和過程,是在了解搜索引擎自然排名機制的基礎上,對網站進行內部及外部的調整優化,…

grep命令

請見附件;轉載于:https://blog.51cto.com/11203760/1750457

windows 常用系統變量

常用: %USERPROFILE% C:\Users\用戶名 %SystemRoot% C:\WINDOWS %SystemDrive% C: %APPDATA% C:\Users\用戶名\AppData\Roaming %LOCALAPPDATA% C:\Users\用戶名\AppData\Local %windir% C:\WINDOWS %Path% C:\Windows\system32;C:\Wi…

C# 自定義并動態切換光標

本文經原作者授權以原創方式二次分享,歡迎轉載、分享。原文作者:唐宋元明清的博客原文地址:https://www.cnblogs.com/kybs0/p/14873136.html系統有很多光標類型 :Cursors 類 (System.Windows.Input) | Microsoft Docs[1]本章介紹如…

HTML基礎加強

1. 什么是瀏覽器:解釋和執行HTML源碼的工具。 2. 什么是靜態頁面,什么樣的頁面是動態頁面? 靜態頁面:htm,html(直接讀取) 動態網頁:asp,aspx,jsp,…

視頻播放器for android

寫在前面 好久沒有寫博客了, 中間忙了一堆雜七雜八的事情...工作, 情感, 未來, 人生... 下面是正文 一直要寫一個視頻播放器, 好練練手. 這個app, 從年前寫到現在, 終于算弄出了樣子, 0.0版本. (不得不說, googleVPN值得擁有, android developer網站, android sdk samples, sta…

我要偷偷學習C#,然后學習GIS二次開發之試題匯總(附答案)

一、單項選擇題(每小題2分,共20分) 在類作用域中能夠通過直接使用該類的( )成員名進行訪問。 A. 私有 B. 公用 C. 保護 D. 任何 答案:D 小數類型(decimal)和浮點類型都可以表示小數,正確說法:( ) A. 兩者沒有任何區別 B. 小數類型比浮點類型取值范圍大 C.小數類型比浮…

簡單粗暴無需拼接下載 blob (ts)視頻文件

網上很多視頻采用blob來播放視頻&#xff0c;查看源碼會發現video的src為形如 &#xff1a; src"blob:https://*/f2880c6a-c2c5-4146-96b2-944ae555b76a" <video id"" class"" preload"auto" playsinline"playsinline"…

System.CommandLine版CSRebot

之前自己實現過一個CSRebot命令行工具&#xff0c;現在用System.CommandLine來實現&#xff0c;就規范和省事多了&#xff0c;雖然System.CommandLine還沒有正式發布&#xff0c;但它的實現思路還是很不錯的。下面的代碼只簡單實現了MSSQL庫生成C#體類的功能&#xff0c;其他庫…

Shell重定向

Liunx下系統打開的3個文件&#xff0c;即標準輸入、標注輸出和標準錯誤輸出。用戶的shell將鍵盤設為默認的標準輸入&#xff0c;默認的標準輸入和標準錯誤輸出為屏幕。也就是說&#xff0c;用戶從鍵盤輸入命令&#xff0c;然后將結果和錯誤消息輸入到屏幕所謂的重定向&#xff…

【CASS精品教程】CASS 9.2 for AutoCAD2014啟動提示文件加載,怎么處理?

CASS9.2在安裝完后,首次啟動會提示如下圖樣提示,應該如何處理?請看以下步驟: 解決步驟: 1、安裝完CASS9.2_2014后,首次啟動CASS92,會出現如下圖所示提示。選擇“不加載”。 2、進入AutoCAD系統配置—系統頁面 打開系統頁面菜單 系統界面截圖

VS2015不能修改安裝路徑問題

能修改安裝路徑&#xff0c;固態硬盤空間太小&#xff0c;所以不能裝在C盤啊。 其中&#xff0c;原因是以前安裝過VS2015沒有卸載干凈&#xff0c;解決方法是&#xff1a;下載Visual Studio Uninstaller卸載完全&#xff08;要以管理員運行哈&#xff09; 下載地址&#xff1a;…

python 繪制分形樹

# -*- coding: utf8 -*- """ 繪制分形樹 """ import turtledeflection_angle 20 # 樹枝與樹干夾角 trunk_min_length 5 # 樹干最小長度 trunk_step_length 10 # 樹干每次遞減長度 trunk_length 80 # 初…

像JAVA一樣流暢調試C#源代碼?

起因最近在研究ServiceScope的內一些內在運行邏輯,發現相關資料非常少&#xff0c;只有講IOC相關的文章有說Core時代的官方依賴注入怎么使用。。遂決定還是要去看源代碼。這部分源代碼在Microsoft.Extensions.DependencyInjection庫中&#xff0c;源代碼位置在src/libraries[1]…

物化視圖VS普通視圖

2019獨角獸企業重金招聘Python工程師標準>>> 物化視圖是一種特殊的物理表&#xff0c;“物化”(Materialized)視圖是相對普通視圖而言的。普通視圖是虛擬表&#xff0c;應用的局限性大&#xff0c;任何對視圖的查詢&#xff0c;Oracle都實際上轉換為視圖SQL語句的查…

【CASS精品教程】CASS繪圖軟件入門初級教程超詳細資料

文章目錄 第一章 CASS 9.0簡介第二章 CASS 9.0快速入門第三章 測制地形圖第四章 測制地籍圖第五章 土地詳查與勘測定界第六章 CASS在數據入庫中的應用第七章 CASS 9.0在工程中的應用第八章 數字地圖管理第九章 CASS在市政監管中的應用第十章 白紙圖數字化第十一章電子平板成圖第…

多兼容的JS獲取鼠標坐標

//第一、相對于屏幕 function getMousePos(event) {var e event || window.event;return {x:e.screenX,y:screenY} } //第二、相對于瀏覽器 function getMousePos(event) {var e event || window.event;return {x:e.clientX,y:clientY} }//第三、相對于文檔 function getM…

aws-ec2-雙網卡問題

問題描述 在已存在的EC2上新添加網卡后發現&#xff0c;凡是和eth0在同一個網段的只能通過eth0訪問&#xff0c;不能通過eth1。同樣的&#xff0c;在eth1網段的只能通過eth1訪問&#xff0c;不能通過eth0訪問。 如果既不在eth0也不再eth0 默認走eth0(在沒有修改路由表的前提下&…