在金融領域,特別是在前台的工作人員,着重的不是硬件或軟件的工作效率,而是對對象的分析能力和調試的效率。基於這個想法,python 是十分勝任這件工作的編程語言。Python有着動態及弱定義的資料結構,即我們不需要事前知道我要處理的資料是整數(int)還是浮點(float)皆可以統一處理,特別是處理數字字串的時候,python的特性更具優勢。
簡單介紹後,我們來看一下在金融中,到底哪方面需要如此巨大的計算能力?在我幾年金融工作中,要需要到這計算能力的不外乎是資產分析和產品定價。資產分析方面,例如分析股價走勢,都涉及資料挖掘和時間列的分析,而產品的定價更需要大量的模擬計算。因此我們基本要學上以下的工具
python 2/3 - python 只是基本的程式語言,要學習python 2還是python 3,相關的討論還是很多,我不作討論。除了基本的語法,要實際地應用,至少要有 object-oriented programming,multi-threading, regular expression的概念
numpy/scipy - 兩個是做科學計算的必要package,numpy 提供一個用c寫成的資料結構"ndarray",作陣列計算。而scipy是計算包,從optimization 到simulation都有,詳細可以看一看手冊
statsmodel -作統計的計算包,主要用於時間序列方面的應用
matplotlib - 視像化工具包,想作一些高端大氣的圖表一定要用到
pandas - 一個新冒起的數据分析包,提供了十分全面的資料結構,從一維的Series到多維DataFrame/panel,提供十分方便的data structure,更重要的是它本身已經包含了基本scipy statsmodel 和matplotlib的基本工具(我們要感謝pandas的努力)
當然python已經發展到十分成熟,現在我們不需要逐個包抓下來,網路上已經有整合包,可以從anaconda 或者canopy上下載回來,次選擇會是 winpython ,日後有機會再加上用後感
以上都是我使用經驗,歡迎交流下除金融外的應用心得