處理數(shù)據(jù)前需先將數(shù)據(jù)導(dǎo)入庫中,此處為指定網(wǎng)絡(luò)位置的數(shù)據(jù)資源,通過urllib2包處理
import urllib2
url = 'http://aima.cs.berkeley.edu/data/iris.csv' #數(shù)據(jù)源存儲(chǔ)地址
gu = urllib2.urlopen(url) #打開網(wǎng)頁
localFile = open('iris.csv', 'w') #標(biāo)準(zhǔn)類庫創(chuàng)建名為iris.cvs的文件
localFile.write(gu.read()) #寫入文件內(nèi)容
localFile.close()
數(shù)據(jù)包含鳶尾花(iris)數(shù)據(jù)集,這是一個(gè)包含了三種鳶尾花(山鳶尾、維吉尼亞鳶尾和變色鳶尾)的各50個(gè)數(shù)據(jù)樣本的多元數(shù)據(jù)集,每個(gè)樣本都有四個(gè)特征(或者說變量),即花萼(sepal)和花瓣(petal)的長(zhǎng)度和寬度。以厘米為單位。
數(shù)據(jù)集以CSV(逗號(hào)分割值)的格式存儲(chǔ)。CSV文件可以很方便的轉(zhuǎn)化并把其中的信息存儲(chǔ)為適合的數(shù)據(jù)結(jié)構(gòu)。此數(shù)據(jù)集有5列,前4列包含著特征值,最后一列代表著樣本類型。
CSV文件很容易被numpy類庫的genfromtxt方法解析:(還有別的方法嗎?)
from numpy import genfromtxt, zeros
ft = genfromtxt('iris.csv',delimiter=',',usecols=(0,1,2,3)) #讀取特征值
msample = genfromtxt('iris.csv',delimiter=',',usecols=(4),dtype=str) #讀取樣本類型
print "feature:"
print ft.shape
print ft
print "sample:"
print msample.shape
print sample
print "sample contains %s" % set(msample)