<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            軟件包的安裝和介紹?

            安裝軟件包?

            安裝?

            和Matlab不同,Python的科學軟件包由眾多的社區維護和發布,因此要一一將其收集齊安裝到你的電腦里是一件很費時間的事情。幸好這些工作已經有人幫我們整理好了。只需要下載一個文件,一次安裝就能擁有眾多的函數庫可供使用。

            這里介紹兩個科學計算Python合集的下載和安裝過程。

            Python(x,y)?

            http://www.pythonxy.com 發布的Python(x,y)將近400M,收集了眾多的函數庫以及文檔、教程。并且提供了一個方便的啟動界面:

            _images/pythonxy_home.png

            Python(x,y)的啟動畫面

            • Shortcuts:啟動各種應用程序
            • Documentation:打開各個軟件包的文檔
            • About:查看所安裝的程序庫的版本信息

            Enthought Python Distribution (EPD)?

            下載地址:http://www.enthought.com/products/getepd.php EPD是一個商業的Python發行版本,同樣包括了眾多的科學軟件包,而且作為教學使用是免費的,大小約為250M。

            工具?

            安裝好了之后先看看下面這些常用的工具,在以后的學習過程中會經常用到。

            iPython?

            ipython 是一個 python 的交互式 shell,比默認的 python shell 好用得多,支持變量自動補全,自動縮近,支持 bash shell 命令,內置了許多很有用的功能和函數。

            如果你安裝了Python(x,y)的話,可以從Python(x,y)的啟動界面中運行iPython。

            _images/iPython_start.png

            通過Python(x,y) Home啟動IPython的各種選項

            從下拉選擇框中選擇你想運行的iPython,然后點擊后面的①或者②按鈕啟動iPython。下拉選擇框中的IPython(x,y)、IPython(Qt)、IPython(wxPython)和IPython(mlab)等幾個選項都是啟動iPython,只不過它們的啟動方式不同。而Python選項則只啟動單純的Python Shell。

            選項 參數 含義
            IPython(x,y) -pylab -p xy  
            IPython(Qt) -q4thread  
            IPython(wxPython) -wthread  
            IPython(mlab) -wthread  

            點擊①按鈕將用一個叫做Console的軟件啟動Shell,此軟件在窗口中顯示Shell,并且支持多標簽。點擊②按鈕用Windows自帶的Cmd啟動Shell。

            如果你用python(x,y)的啟動界面通過IPython(x,y)運行iPython的話,那么在iPython打開之后自動運行一個default.py腳本。此腳本缺省執行以下的函數庫導入:

            import numpy
            import scipy
            from numpy import *
            

            為了和numpy, scipy等社區的推薦的標準導入方式一致,請點擊按鈕③,然后在打開的文件夾中添加一個名為numpy.py的文件,編輯此文件,添加以下幾行推薦的導入:

            import numpy as np
            import scipy as sp
            import pylab as pl
            

            此后運行IPython(x,y)的時候請記著要選擇numpy.py為啟動腳本。

            如果要使用pylab,TraitsUI等在shell中和圖形界面進行交互的話,需要選擇帶-wthread參數的選項(-pylab也可以)。下圖是一個用pylab繪制sin波形圖的例子:

            _images/iPython_sample.png

            使用IPython交互式地繪制正弦波

            在iPython的交互中可以方便地使用如下功能:

            • 自動補全:輸入一部分文字之后按tab鍵,iPython將列出所有以輸入補全信息。
            • 查看文檔:輸入需要查看文檔的函數,然后在后面添加?或者??,?表示查看函數的文檔,??表示查看其Python源代碼,如果函數不是Python寫的,則查看不到。
            • 執行cmd命令:ls-列出當前目錄下的所有文件,cd-顯示或者更改當前路徑
            • 執行Python程序:用run *.py命令,在IPython中運行指定的py文件。如果加-i參數的話,則在IPython的命名空間中執行。也就是說在文件中沒有定義名稱會直接使用在IPython中的。
            • 執行剪切板中的程序:你可以從本書中復制代碼,然后在IPython命令窗口中執行paste命令運行復制的代碼。如果執行paste foo的話,將把剪切板中的內容復制到變量foo中。變量foo是一個IPython提供的SList列表類型,它提供了很多操作所復制的內容的方法。
            • 執行系統命令:在要執行的系統名字之前添加一個!號。例如執行!test.py的話,那么將讓系統運行test.py文件。和run命令不同的是,test.py完全在另外的進程中運行。

            spyder?

            spyder是Python(x,y)的作者為它開發的一個簡單的Python開發環境。和其它Python IDE相比它最大的優點就是模仿MATLAB的workspace功能,可以很方便地觀察和修改數組的值。

            spyder的項目地址: http://code.google.com/p/spyderlib

            下圖是spyder的界面截圖:

            _images/spyder_01.png

            在Spyder中執行圖像處理的程序

            下圖是Workspace的截圖,列出了其中的變量名以及類型和大小等信息。鼠標右鍵可以顯示出操作指定變量的菜單:

            Warning

            Workspace缺省配置不顯示大寫字母開頭的變量,可以在Workspace菜單中修改這項配置。

            _images/spyder_02.png

            使用Workspace查看變量內容

            選擇Plot選項,將出現如下圖所示的繪圖窗口:

            _images/spyder_03.png

            在Workspace中將數組繪制成曲線圖

            如果Edit選項的話,將出現如下圖所示的編輯器對數組進行操作:

            _images/spyder_04.png

            使用數組編輯器查看和編輯數組內容

            函數庫介紹?

            Python的科學計算方面的內容由許多庫構成,在基礎篇中讓我們首先來了解一下編寫科學計算軟件時經常使用的一些庫。

            數值計算庫?

            NumPy為Python提供了快速的多維數組處理的能力,而SciPy則在NumPy基礎上添加了眾多的科學計算所需的各種工具包,有了這兩個庫,Python就有幾乎和Matlab一樣的處理數據和計算的能力了。

            NumPy和SciPy官方網址: http://www.scipy.org

            NumPy為Python帶來了真正的多維數組功能,并且提供了豐富的函數庫處理這些數組。它將常用的數學函數都進行數組化,使得這些數學函數能夠直接對數組進行操作,將本來需要在Python級別進行的循環,放到C語言的運算中,明顯地提高了程序的運算速度。

            SciPy的核心計算部分都是一些久經考驗的Fortran數值計算庫,例如:

            • 線性代數使用LAPACK庫
            • 快速傅立葉變換使用FFTPACK庫
            • 常微分方程求解使用ODEPACK庫
            • 非線性方程組求解以及最小值求解等使用MINPACK庫

            符號計算庫?

            SymPy是一套進行符號數學運算的Python函數庫,雖然它目前還沒有到達1.0版本,但是已經足夠好用,可以幫助我們進行公式推導,進行符號求解。

            SymPy官方網址: http://code.google.com/p/sympy

            界面設計?

            制作界面一直都是一件十分復雜的工作,使用Traits庫,你將再也不會在界面設計上耗費大量精力,從而能把注意力集中到如何處理數據上去。

            Traits官方網址: http://code.enthought.com/projects/traits

            Traits庫分為Traits和TraitsUI兩大部分,Traits為Python添加了類型定義的功能,使用它定義的traits屬性具有初始化、校驗、代理、事件等諸多功能。

            TraitsUI庫基于Traits庫,使用MVC結構快速地定義用戶界面,在最簡單的情況下,你甚至不需要寫一句關于界面的代碼,就可以通過traits屬性定義獲得一個可以工作的用戶界面。使用TraitsUI庫編寫的程序自動支持wxPython和pyQt兩個經典的界面庫。

            繪圖與可視化?

            Chacomatplotlib是很優秀的2D繪圖庫,Chaco庫和Traits庫緊密相連,方便制作動態交互式的圖表功能。而matplotlib庫則能夠快速地繪制精美的圖表、以多種格式輸出,并且帶有簡單的3D繪圖的功能。

            Chaco官方網址: http://code.enthought.com/projects/chaco

            matplotlib官方網址: http://matplotlib.sourceforge.net

            TVTK庫在標準的VTK庫之上用Traits庫進行封裝,如果要在Python下使用VTK,用TVTK是再好不過的選擇。Mayavi2則在TVTK的基礎上再添加了一套面向應用的方便工具,它既可以單獨作為3D可視化程序使用,也可以快速地嵌入到用戶的程序中去。

            Mayavi2官方網址: http://code.enthought.com/projects/mayavi

            VTK(Visualization Toolkit)

            視覺化工具函式庫(VTK, Visualization Toolkit)是一個開放源碼,跨平臺、支援平行處理(VTK曾用于處理大小近乎1個Petabyte的資料,其平臺為美國Los Alamos國家實驗室所有的具1024個處理器之大型系統)的圖形應用函式庫。2005年實曾被美國陸軍研究實驗室用于即時模擬俄羅斯制反導彈戰車ZSU23-4受到平面波攻擊的情形,其計算節點高達2.5兆個之多。 -- 摘自維基百科

            此外,使用Visual庫能夠快速、方便地制作3D動畫演示,使你的數據結果更有說服力。

            Visual官方網址: http://vpython.org

            圖像處理和計算機視覺?

            OpenCV是由英特爾公司發起并參與開發,以BSD許可證授權發行,可以在商業和研究領域中免費使用。OpenCV可用于開發實時的圖像處理、計算機視覺以及模式識別程序。OpenCV提供的Python API方便我們快速實現算法,查看結果并且和其它的庫進行數據交換。

            首頁目錄

            上一篇文章

            用Python做科學計算

            下一篇文章

            NumPy-快速處理數據

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线