Pandas
Pandas是 Python下最強大的數據分析和探索工具。它包含高級的數據結構和精巧的工具,使得在 Python中處理數據非常快速和簡單。 Pandas構建在 Numpy之上,它使得以 Numpy為中心的應用很容易使用。Pandas的功能非常強大,支持類似於SQL的數據增、刪、查、改,並且帶有豐富的數據處理函數;支持時間序列分析功能;支持靈活處理缺失數據等。
Pandas的安裝相對來說比較容易,安裝好 Numpy之後,就可以直接安裝了,通過pip install pandas或下載源碼後 python setup. py install安裝均可。由於我們頻繁用到讀取和寫入Excel,但默認的 Pandas還不能讀寫 Excel文件,需要安裝xlrd(讀)和xlwt(寫)庫才能支持 Excel的讀寫,方法如下:
pip install xrd #為 Python添加讀取 Excel的功能
pip install xlwt #為 Python添加寫入 Excel的功能
Pandas基本的數據結構是 Series和 Dataframe。顧名思義, Series就是序列,類似一維數組; Data Frame則是相當於一張二維的表格,類似二維數組,它的每一列都是一個 Series。為了定位 Series中的元素, Pandas提供了Index對象,每個 Series都會帶有一個對應的Index,用來標記不同的元素, Index的內容不一定是數字,也可以是字母、中文等,它類似於SQL中的主鍵。
類似地, Data Frame相當於多個帶有同樣 Index的 Series的組合,每個 Seiries都帶有唯一的表頭,用來標識不同的 Series。舉個例子:
# -*- coding:utf-8 -*-
import pandas as pd #通常用pd作為 pandas的別名。
s=pd.Series([1,2,3], index=['a','b','c']) #創建一個序列s
d=pd.DataFrame([[1,2,3],[4,5,6]], columns=['a','b','c']) #創建一個表
d2=pd.DataFrame(s) #也可以用已有的序列來創建表格
print(d.head()) #預覽前5行數據
print(d.describe()) #數據基本統計量
pd.read_excel('data.xls') #讀取Exce1文件,創建 Dataframe
pd.read_csv('data.csv', encoding='utf-8') #讀取文本格式的數據,一般用 encoding指定編碼。
StatsModels
Pandas著眼於數據的讀取、處理和探索,而StatsModels則更加註重數據的統計建模分析,它使得 Python有了R語言的味道。 StatsModels支持與 Pandas進行數據交互,因此,它與 Pandas結合,成為了 Python下強大的數據挖掘組合。
安裝StatsModels相當簡單,既可以通過pip安裝,又可以通過源碼安裝。對於Windows用戶來說,官網上甚至已經有編譯好的exe文件以供下載。如果手動安裝的話,需要自行解決好依賴問題, Statmodel依賴於Pandas(當然也依賴於 Pandas所依賴的),同時還依賴於pasty(一個描述統計的庫)。
下面是一個用 Stats Models來進行ADF平穩性檢驗的例子。
# -*- coding: utf-8 -*-
from statsmodels.tsa.stattools import adfuller as ADF #導入ADF恰驗
import numpy as np
ADF.(np.random.rand(100)) #返回的結果有ADF、p值
Scikit-Learn
Scikit-Learn是 Python下強大的機器學習工具包,它提供了完善的機器學習工具箱,包括數據預處理、分類、迴歸、聚類、預測和模型分析等。Scikit-Learn依賴於 Numpy、 Scipy和 Matplotlib,因此,只需要提前安裝好這幾個庫,然後安裝 Scikit-Learn就基本上沒有什麼問題了,安裝方法和之前一樣,要不就是pipinstall scikit-leam安裝,要不就是下載源碼自己安裝。
創建一個機器學習的模型很簡單:
# -*- coding:utf-8 -*-
from sklearn.linear_model import Linearregression #導入線性迴歸模型
model= Linearregression() #建立線性迴歸模型
print (model)
1)所有模型提供的接口有:
model fit0:訓練模型,對於監督模型來說是 fit(x,y),對於非監督模型是fit(X)。
2)監督模型提供的接口有:
model predict(xnew):預測新樣本
model predict proba(Xnew):預測概率,僅對某些模型有用(比如LR)
model score:得分越高,fit越好
3)非監督模型提供的接口有:
model transform(:從數據中學到新的“基空間”
model fit transform:從數據中學到新的基並將這個數據按照這組“基”進行轉換。
Scikit- Learn本身提供了一些實例數據,比較常見的有安德森鳶尾花卉數據集、手寫圖像數據集等。現在使用鳶尾花數據集iris寫一個簡單的機器學習的例子。對於這個數據集,可以閱讀《 》
# -*- coding:utf-8 -*-
from sklearn import datasets #導入數據集
iris= datasets.load_iris() #加載數據集
print(iris.data.shape) #查看數據集大小
from sklearn import svm #導入SVM模型
clf=svm. LinearSVC() #建立線性SVM分類器
clf.fit(iris.data,iris.target) #用數據訓練模型
clf.predict([[5.0,3.6,1.3,0.25]]) #訓練好模型之後,輸入新的數據進行預測
clf.coef_ #查看訓練好模型的參數
閱讀更多 數據分析和挖掘 的文章