SciPy
SciPy是一組專門解決科學(xué)計(jì)算中各種標(biāo)準(zhǔn)問題域的包的集合,主要包括下面這些包:
- scipy.integrate:數(shù)值積分例程和微分方程求解器。
- scipy.linalg:擴(kuò)展了由numpy.linalg提供的線性代數(shù)例程和矩陣分解功能。
- scipy.optimize:函數(shù)優(yōu)化器(最小化器)以及根查找算法。
- scipy.signal:信號(hào)處理工具。
- scipy.sparse:稀疏矩陣和稀疏線性系統(tǒng)求解器。
- scipy.special:SPECFUN(這是一個(gè)實(shí)現(xiàn)了許多常用數(shù)學(xué)函數(shù)(如伽瑪函數(shù))的Fortran庫)的包裝器。
- scipy.stats:標(biāo)準(zhǔn)連續(xù)和離散概率分布(如密度函數(shù)、采樣器、連續(xù)分布函數(shù)等)、各種統(tǒng)計(jì)檢驗(yàn)方法,以及更好的描述統(tǒng)計(jì)法。
NumPy和SciPy結(jié)合使用,便形成了一個(gè)相當(dāng)完備和成熟的計(jì)算平臺(tái),可以處理多種傳統(tǒng)的科學(xué)計(jì)算問題。
scikit-learn
2010年誕生以來,scikit-learn成為了Python的通用機(jī)器學(xué)習(xí)工具包。僅僅七年,就匯聚了全世界超過1500名貢獻(xiàn)者。它的子模塊包括:
- 分類:SVM、近鄰、隨機(jī)森林、邏輯回歸等等。
- 回歸:Lasso、嶺回歸等等。
- 聚類:k-均值、譜聚類等等。
- 降維:PCA、特征選擇、矩陣分解等等。
- 選型:網(wǎng)格搜索、交叉驗(yàn)證、度量。
- 預(yù)處理:特征提取、標(biāo)準(zhǔn)化。
與pandas、statsmodels和IPython一起,scikit-learn對(duì)于Python成為高效數(shù)據(jù)科學(xué)編程語言起到了關(guān)鍵作用。雖然本書不會(huì)詳細(xì)講解scikit-learn,我會(huì)簡(jiǎn)要介紹它的一些模型,以及用其它工具如何使用這些模型。
statsmodels
statsmodels是一個(gè)統(tǒng)計(jì)分析包,起源于斯坦福大學(xué)統(tǒng)計(jì)學(xué)教授Jonathan Taylor,他設(shè)計(jì)了多種流行于R語言的回歸分析模型。Skipper Seabold和Josef Perktold在2010年正式創(chuàng)建了statsmodels項(xiàng)目,隨后匯聚了大量的使用者和貢獻(xiàn)者。受到R的公式系統(tǒng)的啟發(fā),Nathaniel Smith發(fā)展出了Patsy項(xiàng)目,它提供了statsmodels的公式或模型的規(guī)范框架。
與scikit-learn比較,statsmodels包含經(jīng)典統(tǒng)計(jì)學(xué)和經(jīng)濟(jì)計(jì)量學(xué)的算法。包括如下子模塊:
- 回歸模型:線性回歸,廣義線性模型,健壯線性模型,線性混合效應(yīng)模型等等。
- 方差分析(ANOVA)。
- 時(shí)間序列分析:AR,ARMA,ARIMA,VAR和其它模型。
- 非參數(shù)方法: 核密度估計(jì),核回歸。
- 統(tǒng)計(jì)模型結(jié)果可視化。
statsmodels更關(guān)注與統(tǒng)計(jì)推斷,提供不確定估計(jì)和參數(shù)p-值。相反的,scikit-learn注重預(yù)測(cè)。
同scikit-learn一樣,我也只是簡(jiǎn)要介紹statsmodels,以及如何用NumPy和pandas使用它。
除了在網(wǎng)上搜索,各式各樣的科學(xué)和數(shù)據(jù)相關(guān)的Python郵件列表是非常有幫助的,很容易獲得回答。包括:
- pydata:一個(gè)Google群組列表,用以回答Python數(shù)據(jù)分析和pandas的問題;
- pystatsmodels: statsmodels或pandas相關(guān)的問題;
- scikit-learn和Python機(jī)器學(xué)習(xí)郵件列表,scikit-learn@python.org;
- numpy-discussion:和NumPy相關(guān)的問題;
- scipy-user:SciPy和科學(xué)計(jì)算的問題;
因?yàn)檫@些郵件列表的URLs可以很容易搜索到,但因?yàn)榭赡馨l(fā)生變化,所以沒有給出。
每年,世界各地會(huì)舉辦許多Python開發(fā)者大會(huì)。如果你想結(jié)識(shí)其他有相同興趣的人,如果可能的話,我建議你去參加一個(gè)。許多會(huì)議會(huì)對(duì)無力支付入場(chǎng)費(fèi)和差旅費(fèi)的人提供財(cái)力幫助。下面是一些會(huì)議:
- PyCon和EuroPython:北美和歐洲的兩大Python會(huì)議;
- SciPy和EuroSciPy:北美和歐洲兩大面向科學(xué)計(jì)算的會(huì)議;
- PyData:世界范圍內(nèi),一些列的地區(qū)性會(huì)議,專注數(shù)據(jù)科學(xué)和數(shù)據(jù)分析;
- 國(guó)際和地區(qū)的PyCon會(huì)議(http://pycon.org有完整列表) 。