日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【转】iPython入门技巧

發布時間:2023/12/2 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】iPython入门技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【轉】http://www.cnblogs.com/cuiyubo/p/6823478.html

學習《利用python進行數據分析》

第三章 IPython:一種交互式計算和開發環境的筆記,共享給大家,同時為自己作為備忘用。

安裝ipython用pip即可。ps.博主用的是win7系統,所以接下來的都是在windows系統下操作的。


?

一.Ipython基礎

啟動:開始菜單-輸入cmd-回車-輸入ipython

初嘗試


二.Tab鍵自動完成

在shell中輸入表達式時,只要按下Tab鍵,當前命令控件中任何與輸入的字符串相匹配的變量(對象、函數等)就會被找出來。

ps.之前我發現我的ipython沒有Tab鍵自動補全功能,tab鍵的功能是縮進。最后 pip install pyreadline即可解決。

下面這個例子,輸入b.后按下<tab>鍵即可得到下圖的結果。

三.內省

在變量的前面或后面加上一個問號(?)就可以將有關該對象的一些通用信息顯示出來。這就叫做對象的內省。

如果對象是一個函數或實例方法,則其docstring也會被現實出來。

使用??還將顯示出該函數的源代碼。

一些字符串配以通配符(*)即可顯示出所有與該通配符表達式相匹配的名稱。

例如,我們可以列出Numpy頂級命名空間中含有“load”的所有函數

?


?

四.%run命令

在ipython會話環境中,所有文件都可以通過%run命令當做Python程序來運行。

輸入 %run 路徑+python文件名稱即可。

ps.《集體智慧編程》里面代碼的執行可以用這個


?

五.中斷正在執行的代碼(急性子必備23333)

按下Ctrl-C就會引發一個KeyboardInterrupt。除了一些非常特殊的情況下,絕大部分python程序都會立即停止執行


六.執行剪貼板中的代碼

書上說使用ctrl+shift+v將剪貼板的代碼片段粘貼出來,然而windows系統似乎不可行,所以鼠標右鍵粘貼好了。

%paste可以承載剪貼板中的一切文本,并在shell中以整體形式執行。

%cpaste跟%paste差不多,只不過它多出了一個用于粘貼代碼的特殊提示符而已。如果發現粘貼的代碼有錯,只需要按下ctrl+c即可終止%cpaste提示如。


七.鍵盤快捷鍵

其實不到真正使用我也記不住23333,在此粘貼給大家作為備忘。

  • Ctrl-P? ? 或上箭頭鍵 后向搜索命令歷史中以當前輸入的文本開頭的命令
  • Ctrl-N? ?或下箭頭鍵 前向搜索命令歷史中以當前輸入的文本開頭的命令
  • Ctrl-R? ?按行讀取的反向歷史搜索(部分匹配)
  • Ctrl-Shift-v? ?從剪貼板粘貼文本
  • Ctrl-C? ?中止當前正在執行的代碼
  • Ctrl-A? ?將光標移動到行首
  • Ctrl-E? ?將光標移動到行尾
  • Ctrl-K? ?刪除從光標開始至行尾的文本
  • Ctrl-U? ?清除當前行的所有文本譯注12
  • Ctrl-F? ?將光標向前移動一個字符
  • Ctrl-b? ?將光標向后移動一個字符
  • Ctrl-L? ?清屏

  • 八.異常和跟蹤

    九.魔術命令

    粘貼在此以作備忘

    命令?說明
    %quickref?顯示IPython的快速參考
    %magic?顯示所有魔術命令的詳細文檔
    %debug?從最新的異常跟蹤的底部進入交互式調試器
    %hist?打印命令的輸入(可選輸出)歷史
    %pdb?在異常發生后自動進入調試器
    %paste?執行剪貼板中的Python代碼
    %cpaste?打開一個特殊提示符以便手工粘貼待執行的Python代碼
    %reset?刪除interactive命名空間中的全部變量/名稱
    %page OBJECT?通過分頁器打印輸出OBJECT
    %run script.py?在IPython中執行一個Python腳本文件
    %prun statement?通過cProfile執行statement,并打印分析器的輸出結果
    %time statement?報告statement的執行時間
    %timeit statement?多次執行statement以計算系綜平均執行時間。對那些執行時??間非常小的代碼很有用
    %who、%who_ls、%whos?顯示interactive命名空間中定義的變量,信息級別/冗余度可變
    %xdel variable?刪除variable,并嘗試清除其在IPython中的對象上的一切引用

    十.基于Qt的富GUI控制臺

    Ipython團隊開發了一個基于Qt框架(其目的是為終端應用程序提供諸如內嵌圖片、多行編輯、語法高亮之類的富文本剪輯功能)的GUI控制臺。

    使用

    ipython qtconsole --pylab=inline

    來啟動的話可為其添加繪圖功能。

    ps.這一步剛開始無法執行,我的解決方法是:

    pip install qtconsole,就可以運行了- -..

    十一.matplotlib集成與pylab模式

    通常我們通過在啟動Ipython時加上--pylab標記來集成matplotlib

    注意空格啊~是

    ipython --pylab

    十二.使用歷史命令

    十三.搜索并重用歷史命令

    歷史命令用上下箭頭就好啦,ctrl+p和ctrl+n 太麻煩啦。

    ctrl+r用于實現部分增量搜索,按下ctrl+r并輸入你想搜索的行中的幾個字符。按下ctrl+r將會循環搜索歷史命令中每一條與輸入相符的行。

    十四.輸入和輸出變量

    ipython將最近的兩個輸出結果保存在_(一個下劃線)和__(兩個下劃線)變量中

    輸入的文本被保存在名為_iX的變量中,其中X是輸入行的行號。比如說,在輸入完27行后,就會產生兩個新變量_27(輸出變量)和_i27(輸入變量)

    十五.記錄輸入和輸出

    執行%logstart既可開始記錄日志

    ?十六.與操作系統交互

    ?

    十七.shell命令和別名

    在ipython中,以感嘆號(!)開頭的命令行表示其后的所有內容需要在系統shell中執行。

    ##再啟動一個python解釋器

    在使用!時,ipython還允許使用當前環境中定義的python值。只需要在變量名前面加上$即可

    魔術命令%alias可以為shell命令自定義簡稱。

    這是怎么回事兒~!

    十八.目錄書簽系統

    ipython有一個簡單的目錄書簽系統,它使你能保存常用目錄的別名以實現快速跳轉。

    十九.軟件開發工具

    (一)交互式調試器

    調試代碼的最佳時期之一就是錯誤剛剛發生那會兒。

    %debug命令(在發生異常之后馬上輸入)將會調用哪個“事后調試器”,并直接跳轉到引發異常的那個棧幀(stack frame)

    這兒需要打開ipython_bug.py文件,需要的同學可以問我要,路徑還需要自己改一改。

    在這個調試器中,可以執行任意python代碼并查看各個棧幀中的一切對象和數據(也就是解釋還“留了條生路”的那些)。

    默認從最低級開始的(即錯誤發生的地方)。

    輸入u(up)和d(down)即可在棧跟蹤的個級別之間的切換

    執行%Pdb命令可以讓ipython在出現異常之后自動調用調試器。

    此外,調試器還可以為代碼開發工作提供幫助,尤其是當你想要設置斷點或對函數、腳本進行單步調試以查看各條語句的執行情況時。

    實現這個目的的方式有幾個:

    (二)調試器的其它使用場景

    (三)測試代碼的執行時間:%time和%timeit

    有時候你可能會希望了解某個復雜計算過程中到底是哪些函數占用的時間最多。

    ipython專門提供了兩個魔術函數(%time和%timeit)以便自動完成該過程。

    %time一次執行一條語句,然后報告總體執行時間。

    例子:下面是一個擁有60萬字符串的數組,以及兩個不同的“能夠選出其中以foo開頭的字符串”的方法:

    #一個非常大的字符串數組 strings = ['foo','foobar','baz','qux','python','Guido Van Rossum']*100000 method1 = [x for x in strings if x.startswith('foo')] mathod2 = [x for x in strings if x[:3] == 'foo']

    通過%time來測試:

    但是這并不是一個非常精確的結果,如果你對相同的語句多次執行%time的話,就會發現其結果是會變的。

    為了得到更為精確的結果,需要使用魔術函數%timeit,對于任意語句,它會自動多次執行以產生一個非常精確的平均執行時間。

    (四)基本性能分析:%prun和%run -p

    (五)逐行分析函數性能

    二十.Ipython HTML Notebook

    IPython Notebook使用瀏覽器作為界面,向后臺的IPython服務器發送請求,并顯示結果。在瀏覽器的界面中使用單元(Cell)保存各種信息。Cell有多種類型,經常使用的有表示格式化文本的Markdown單元,和表示代碼的Code單元。

    每個代碼單元都有一個輸出區域,在Code單元中輸入代碼,按 Shift-Enter 將運行此代碼,代碼中最后一個表達式的值將輸出區域顯示。如果希望屏蔽輸出,可以在最后一條語句之后添加一個分號:”;”。此外,代碼中還可以使用 print語句在輸出區域中顯示信息。

    在Markdown單元中還可以直接使用Html和Javascript。

    二十一.利用ipython提高代碼開發效率的幾點提示

    (一)重新加載模塊依賴項

    (二)代碼設計提示

    1.保留有意義的對象和數據

    2.扁平結構要比嵌套結構好

    3.無懼大文件

    二十一.高級ipython功能

    (一)讓你的類對ipython更加友好

    (二)個性化和配置

    ?

    轉載于:https://www.cnblogs.com/wwwwwei/p/10646729.html

    總結

    以上是生活随笔為你收集整理的【转】iPython入门技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。