Python數據分析(一): ipython 技巧!

不必定非得使用Jupyter Notebook,試試ipython命令行

安裝 ipython

我只試過Windows 10環境下的。python

1.安裝python安裝包以後,應該就有ipython了。shell

2.安裝anaconda,這個作機器學習或數據分析要是須要的,這個裝完以後,也會有ipython。(建議使用anaconda,國內鏡像地址:https://mirrors.tuna.tsinghua.edu.cn/機器學習

啓動ipython

1.命令行輸入ipython便可啓動。函數

2.或者找一下快捷方式,也能夠啓動。工具

幫助?

1.help,python內置了help方法,相信你們都會這個。例如:help(len),而後就會顯示len方法的幫助文檔:學習

2.?,ipython獨有的提供了一個快捷字符?,它也能夠訪問幫助文檔,例如:ui

查看源碼??

使用?? 來查看python的源碼:spa

可是,若是源碼不適用python寫的(有些內置的方法使用C等語言寫的),就會出現以下效果:命令行

自動完成 Tab

Tab鍵在ipython中輸入時可提供自動完成或瀏覽功能。debug

有時候優勢像python內置的dir()函數,但強大得多。

這是L.後邊點擊Tab的效果。下面是再輸入一個字母c以後的智能提示的效果:

提示私有屬性

使用Tab默認只顯示public和external屬性/方法,若是想顯示私有屬性,那麼按約定,你要先輸入一個下劃線_

import的時候也可使用Tab

通配符*

有時候tab不夠用,那就使用通配符 * 。

例如:顯示以Error結尾的對象:

注意後邊還有個?。

*能夠匹配任何字符串包括空字符串。

另外一個例子,包含xxx字符串:

快捷鍵

導航類:

Ctrl+a,移動光標到行首

Ctrl+e,移動光標到行尾

Ctrl+b(或←),向左移動一個字符

Ctrl+f(或→),向右移動一個字符

輸入類:

Backspace:刪除行中前一個字符

Ctrl+d,刪除行中下一個字符

Ctrl+k,從光標位置剪切到行尾。

Ctrl+u,從行首剪切到光標位置。

Ctrl+y,粘貼以前剪切的文字。

Ctrl+t,調換前兩個字符的位置。

命令歷史類:

Ctrl+p,前一個命令,和↑好像同樣。

Ctrl+n,後一個命令,和↓好像同樣。

Ctrl+r,倒序搜索。

其中Ctrl+r是挺有用的,例如:

按Ctrl+r後,輸入a,就會倒序搜索以前的輸入。

若是有相同的歷史搜索結果的話,你能夠點擊屢次Ctrl+r繼續往前翻。

其它快捷鍵:

Ctrl+l,清屏

Ctrl+c,中斷當前python命令

Ctrl+d,退出ipython

 

魔法命令

複製多行代碼 %paste,%cpaste

在ipython命令行中使用Ctrl+c複製多行代碼常常會出現問題(縮進等問題),使用%paste命令,解決了這個問題。

輸入%paste,而後回車,就會把你剪切盤裏面的內容完美的複製進來並執行

%cpaste,和%paste相似,可是它會提供一個交互界面,以便輸入多個代碼塊。

執行外部代碼 %run

直接舉例:

爲代碼執行計時:%timeit,%%timeit

對單行代碼的執行計時:%timeit:

對多行代碼執行計時:%%timeit:

魔法命令的幫助文檔:

使用%maigc,能夠查看全部魔法命令及其文檔。

使用%lsmagic,能夠列出全部的魔法命令。

輸入輸出歷史

使用ipython shell,您必定對左邊這些in,out特別熟悉。

可是,它們不是裝飾品,它們倆是變量

In和Out是兩個變量,而且隨着命令的輸入,實時更新。

其中:

In是一個list,而Out是一個Dictionary。

因此能夠這樣查看具體的In和Out:

其中須要注意的是,並非全部的In都有輸出,例如[37]。

下劃線和前一個輸出

使用一個下劃線 _ 來獲取前一個輸出結果,它是個變量,實時更新的。

使用兩個下劃線 __ 能夠獲取倒數第二個輸出,使用三個下劃線 ___ 獲取倒數第三個輸出。(沒有輸出的命令行不計入在內)

最多也只能使用三個下劃線,超過三的話可使用Out[X]或者_X來獲取以前的輸出:其中X是命令行號,不是往前數的個數。

抑制輸出

有時候在輸入命令後,咱們不想讓其輸出結果,那就這樣,在行的最後邊加一個 ; 分號。

這樣的話,第76行也就沒有輸出了,Out[76]就不存在了。

相關的魔法命令:%history

使用%history能夠一塊兒獲取前面多個命令:

注意其參數-n後邊跟的是 命令行號的區間。

Shell Commands和IPython交互

你能夠在ipython中使用任何shell commands(暫時叫系統命令行的命令吧),只要在前邊加一個歎號 !

(其實,對於常見的shell命令,直接輸入就會好用。。由於automagic屬性默認是on的,詳見後邊)

從Shell向ipython傳值

直接寫個賦值表達式就能夠,等號的右邊是Shell命令:

注意:傳進來的值的類型不是list,而是:IPython.utils.text.SList。

從ipython向Shell傳值:

使用{變量名}的形式賦值:

注意:不可使用 !cd 這個文件系統導航命令。

Shell相關的魔法命令

若是想要在ipython中進行系統導航,那麼應該使用%cd這個魔法命令。

 

automagic

若是把automagic屬性設置爲on,那麼魔法命令前邊就不須要%這個符號了。

默認automagic是on的,你能夠輸入automagic,那麼它就會在on/off之間切換。

由於魔法命令包含了不少常見的shell命令,例如%cd,%pwd,%ls等等等等。因此默認狀況下直接輸入常見的shell命令就會好用。

Exception顯示的詳細程度

若是解釋器擊中異常的時候,能夠在traceback中查看異常信息。

使用%xmode能夠控制異常信息的詳細程度:

%xmode 只有一個參數,後選項從簡到繁是 Plain,Context,Verbose。個人電腦默認是Verbose。

Debugging

%xdebug 魔法命令。

在發生異常後,輸入%xdebug,會進入debug模式ipdb。在這裏輸入變量能夠查看變量的值,也能夠執行python命令!

若是你想在發生任何異常的時候就進入debug模式,那麼能夠把pdb設置爲on:

此外,若是你想在運行外部腳本的時候直接進入debug模式,那麼就應該輸入這個命令:

%run -d

部分Debug命令(ipdb模式下):

l(ist),顯示在文件中的當前位置。

h(elp),幫助

q(uit),退出Debugger和程序。

c(ontinue),退出Debugger,繼續執行程序。

n(ext),執行程序的下一步

<enter>,重複上一個命令

p(rint),打印變量

s(tep),進入子程序

r(eturn),從子程序跳出

分析(Profiling)和計時模式

%time,適用於對單個長時間運行的表達式的程序計時。

%timeit,適用於對循環類的單行程序計時,它更準確。

注意:%timeit的結果一般比%time更快。

%prun,使用分析器運行代碼

此外,還能夠安裝第三方分析工具,例如%lprun(逐行分析),%memit(單個表達式內存分析),%mprun(逐行內存分析)等等。

 

 

下一篇文章,寫一下Numpy的使用技巧

相關文章
相關標籤/搜索