計算機姑娘是擅長進行科學計算的,本來她就是做這個的,只不過后來人們讓她處理了很多文字內容罷了,乃至于現在有一些人認為她是用來打字寫文章的(變成打字機了),忘記了她最擅長的計算。
每種編程語言都能用來做計算,區(qū)別在于編程過程中,是否有足夠的工具包供給。比如用匯編,就得自己多勞動,如果用 Fortran,就方便得多了。不知道讀者是否聽說過 Fortran,貌似古老,現在仍被使用。(以下引文均來自維基百科)
Fortran 語言是為了滿足數值計算的需求而發(fā)展出來的。1953 年 12 月,IBM 公司工程師約翰·巴科斯(J. Backus)因深深體會編寫程序很困難,而寫了一份備忘錄給董事長斯伯特·赫德(Cuthbert Hurd),建議論為 IBM704 系統(tǒng)設計全新的電腦語言以提升開發(fā)效率。當時 IBM 公司的顧問馮·諾伊曼強烈反對,因為他任認為不切實際而且根本不必要。但赫德批準了這項計劃。1957 年,IBM 公司開發(fā)出第一套 FORTRAN 語言,在 IBM704 電腦上運作。歷史上第一支 FORTRAN 程式在馬里蘭州的西屋貝地斯核電廠實驗室。1957 年 4 月 20 日星期五的下午,一位 IBM 軟件工程師決定在電廠內編譯第一支 FORTRAN 程式,當程式碼輸入后,經過編譯,印表機列出一行訊息:“原始程式錯誤……右側括號后面沒有逗號”,這讓現場人員都感到訝異,修正這個錯誤后,印表機輸出了正確結果。而西屋電器公司因此意外地成為 FORTRAN 的第一個商業(yè)用戶。1958 年推出 FORTRAN Ⅱ,幾年后又推出 FORTRAN Ⅲ,1962 年推出 FORTRAN Ⅳ 后,開始廣泛被使用。目前最新版是 Fortran 2008。
還有一個廣為應用的不得不說,那就是 matlab,一直以來被人稱贊。
MATLAB(矩陣實驗室)是 MATrix LABoratory 的縮寫,是一款由美國 The MathWorks 公司出品的商業(yè)數學軟件。MATLAB 是一種用于算法開發(fā)、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環(huán)境。除了矩陣運算、繪制函數/數據圖像等常用功能外,MATLAB 還可以用來創(chuàng)建用戶界面及與調用其它語言(包括 C,C++,Java,Python 和 FORTRAN)編寫的程序。
但是,它是收費的商業(yè)軟件,雖然在某國這個無所謂。
還有 R 語言,也是在計算領域被多多使用的。
R 語言,一種自由軟件程式語言與操作環(huán)境,主要用于統(tǒng)計分析、繪圖、數據挖掘。R 本來是由來自新西蘭奧克蘭大學的 Ross Ihaka 和 Robert Gentleman 開發(fā)(也因此稱為 R),現在由“R 開發(fā)核心團隊”負責開發(fā)。R 是基于 S 語言的一個 GNU 計劃項目,所以也可以當作 S 語言的一種實現,通常用 S 語言編寫的代碼都可以不作修改的在 R 環(huán)境下運行。R 的語法是來自 Scheme。
最后要說的就是 Python,近幾年使用 Python 的領域不斷擴張,包括在科學計算領域,它已經成為了一種趨勢。在這個過程中,雖然有不少人詬病 Python 的這個慢那個解釋動態(tài)語言之類(這種說法是值得討論的),但是,依然無法阻擋 Python 在科學計算領域大行其道。之所以這樣,就是因為它是 Python。
當然,最重要一點,就是本教程是講 Python 的,所以,在科學計算這塊肯定不會講 Fortran 或者 R,一定得是 Python。
如果讀者使用 Ubuntu 或者 Debian,可以這樣來安裝:
sudo apt-get install Python-numpy Python-scipy Python-matplotlib ipython ipython-notebook Python-pandas Python-sympy Python-nose
一股腦把可能用上的都先裝上。在安裝的時候,如果需要其它的依賴,你會明顯看到的。
如果是別的系統(tǒng),比如 windows 類,請自己網上查找安裝方法吧,這里內容不少,最權威的是看官方網站列出的安裝:http://www.scipy.org/install.html
在科學計算中,業(yè)界比較喜歡使用 ipython notebook,前面已經安裝。在 shell 中執(zhí)行
ipython notebook --pylab=inline
得到下圖的界面,這是在瀏覽器中打開的:
http://wiki.jikexueyuan.com/project/start-learning-python/images/31001.png" alt="" />
在 In 后面的編輯去,可以寫 Python 語句。然后按下 SHIFT+ENTER 或者 CTRL+ENTER 就能執(zhí)行了,如果按下 ENTER,不是執(zhí)行,是在當前編輯區(qū)換行。
http://wiki.jikexueyuan.com/project/start-learning-python/images/31002.png" alt="" />
Ipython Notebook 是一個非常不錯的編輯器,執(zhí)行之后,直接顯示出來輸入內容和輸出的結果。當然,錯誤是難免的,它會:
http://wiki.jikexueyuan.com/project/start-learning-python/images/31003.png" alt="" />
注意觀察圖中的箭頭所示,直接標出有問題的行。返回編輯區(qū),修改之后可繼續(xù)執(zhí)行。
http://wiki.jikexueyuan.com/project/start-learning-python/images/31004.png" alt="" />
不要忽視左邊的輔助操作,能夠讓你在使用 ipython notebook 的時候更方便。
http://wiki.jikexueyuan.com/project/start-learning-python/images/31005.png" alt="" />
除了在網頁中之外,如果你已經喜歡上了 Python 的交互模式,特別是你用的計算機中有一個 shell 的東西,更是棒了。于是可以:
$ ipython
進入了一個類似于 Python 的交互模式中,如下所示:
In [1]: print "hello, pandas"
hello, pandas
In [2]:
或者說 ipython 同樣是一個不錯的交互模式。
總目錄 | 上節(jié):用 tornado 做網站 (7) | 下節(jié):Pandas 使用 (1)
如果你認為有必要打賞我,請通過支付寶:qiwsir@126.com,不勝感激。