這篇文章將為大家詳細講解有關如何利用Python實現數據導入和可視化,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
通常,數據分析的第一步由獲取數據和導入數據到我們的工作環境組成。我們可以使用以下的Python代碼簡單的下載數據:
Python
import urllib2 url = 'http://aima.cs.berkeley.edu/data/iris.csv' u = urllib2.urlopen(url) localFile = open('iris.csv'', 'w') localFile.write(u.read()) localFile.close() |
在以上的代碼片段中,我們使用了urllib2類庫以獲取伯克利大學網站的一個文件,并使用標準類庫提供的File對象把它保存到本地磁盤。數據包含鳶尾花(iris)數據集,這是一個包含了三種鳶尾花(山鳶尾、維吉尼亞鳶尾和變色鳶尾)的各50個數據樣本的多元數據集,每個樣本都有四個特征(或者說變量),即花萼(sepal)和花瓣(petal)的長度和寬度。以厘米為單位。
數據集以CSV(逗號分割值)的格式存儲。CSV文件可以很方便的轉化并把其中的信息存儲為適合的數據結構。此數據集有5列(譯者注:原文是行,但這里應該是列的意思),前4列包含著特征值,最后一列代表著樣本類型。CSV文件很容易被numpy類庫的genfromtxt方法解析:
Python
from numpy import genfromtxt, zeros # read the first 4 columns data = genfromtxt('iris.csv',delimiter=',',usecols=(0,1,2,3)) # read the fifth column target = genfromtxt('iris.csv',delimiter=',',usecols=(4),dtype=str) |
在上面的例子中我們創建了一個包含特征值的矩陣以及一個包含樣本類型的向量。我們可以通過查看我們加載的數據結構的shape值來確認數據集的大?。?/p>
Python
print data.shape (150, 4) print target.shape (150,) |
我們也可以查看我們有多少種樣本類型以及它們的名字:
Python
print set(target) # build a collection of unique elements set(['setosa', 'versicolor', 'virginica']) |
當我們處理新數據的時候,一項很重要的任務是嘗試去理解數據包含的信息以及它的組織結構??梢暬梢造`活生動的展示數據,幫助我們深入理解數據。
使用pylab類庫(matplotlib的接口)的plotting方法可以建一個二維散點圖讓我們在兩個維度上分析數據集的兩個特征值:
Python
from pylab import plot, show plot(data[target=='setosa',0],data[target=='setosa',2],'bo') plot(data[target=='versicolor',0],data[target=='versicolor',2],'ro') plot(data[target=='virginica',0],data[target=='virginica',2],'go') show() |
上面那段代碼使用第一和第三維度(花萼的長和寬),結果如下圖所示:
在上圖中有150個點,不同的顏色代表不同的類型;藍色點代表山鳶尾,紅色點代表變色鳶尾,綠色點代表維吉尼亞鳶尾。
另一種常用的查看數據的方法是分特性繪制直方圖。在本例中,既然數據被分為三類,我們就可以比較每一類的分布特征。下面這個代碼可以繪制數據中每一類型的第一個特性(花萼的長度):
Python
from pylab import figure, subplot, hist, xlim, show xmin = min(data[:,0]) xmax = max(data[:,0]) figure() subplot(411) # distribution of the setosa class (1st, on the top) hist(data[target=='setosa',0],color='b',alpha=.7) xlim(xmin,xmax) subplot(412) # distribution of the versicolor class (2nd) hist(data[target=='versicolor',0],color='r',alpha=.7) xlim(xmin,xmax) subplot(413) # distribution of the virginica class (3rd) hist(data[target=='virginica',0],color='g',alpha=.7) xlim(xmin,xmax) subplot(414) # global histogram (4th, on the bottom) hist(data[:,0],color='y',alpha=.7) xlim(xmin,xmax) show() |
結果如下圖:
根據上圖的直方圖,我們可以根據數據類型區分理解數據的特征。
關于“如何利用Python實現數據導入和可視化”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。