溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何利用Python實現(xiàn)數(shù)據(jù)導(dǎo)入和可視化

發(fā)布時間:2021-12-28 17:41:08 來源:億速云 閱讀:252 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細講解有關(guān)如何利用Python實現(xiàn)數(shù)據(jù)導(dǎo)入和可視化,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

數(shù)據(jù)導(dǎo)入和可視化

通常,數(shù)據(jù)分析的第一步由獲取數(shù)據(jù)和導(dǎo)入數(shù)據(jù)到我們的工作環(huán)境組成。我們可以使用以下的Python代碼簡單的下載數(shù)據(jù):

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類庫以獲取伯克利大學(xué)網(wǎng)站的一個文件,并使用標準類庫提供的File對象把它保存到本地磁盤。數(shù)據(jù)包含鳶尾花(iris)數(shù)據(jù)集,這是一個包含了三種鳶尾花(山鳶尾、維吉尼亞鳶尾和變色鳶尾)的各50個數(shù)據(jù)樣本的多元數(shù)據(jù)集,每個樣本都有四個特征(或者說變量),即花萼(sepal)和花瓣(petal)的長度和寬度。以厘米為單位。

數(shù)據(jù)集以CSV(逗號分割值)的格式存儲。CSV文件可以很方便的轉(zhuǎn)化并把其中的信息存儲為適合的數(shù)據(jù)結(jié)構(gòu)。此數(shù)據(jù)集有5列(譯者注:原文是行,但這里應(yīng)該是列的意思),前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)

在上面的例子中我們創(chuàng)建了一個包含特征值的矩陣以及一個包含樣本類型的向量。我們可以通過查看我們加載的數(shù)據(jù)結(jié)構(gòu)的shape值來確認數(shù)據(jù)集的大?。?/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'])

當我們處理新數(shù)據(jù)的時候,一項很重要的任務(wù)是嘗試去理解數(shù)據(jù)包含的信息以及它的組織結(jié)構(gòu)。可視化可以靈活生動的展示數(shù)據(jù),幫助我們深入理解數(shù)據(jù)。

使用pylab類庫(matplotlib的接口)的plotting方法可以建一個二維散點圖讓我們在兩個維度上分析數(shù)據(jù)集的兩個特征值:

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()

上面那段代碼使用第一和第三維度(花萼的長和寬),結(jié)果如下圖所示: 如何利用Python實現(xiàn)數(shù)據(jù)導(dǎo)入和可視化

在上圖中有150個點,不同的顏色代表不同的類型;藍色點代表山鳶尾,紅色點代表變色鳶尾,綠色點代表維吉尼亞鳶尾。

另一種常用的查看數(shù)據(jù)的方法是分特性繪制直方圖。在本例中,既然數(shù)據(jù)被分為三類,我們就可以比較每一類的分布特征。下面這個代碼可以繪制數(shù)據(jù)中每一類型的第一個特性(花萼的長度):

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()

結(jié)果如下圖:

如何利用Python實現(xiàn)數(shù)據(jù)導(dǎo)入和可視化

根據(jù)上圖的直方圖,我們可以根據(jù)數(shù)據(jù)類型區(qū)分理解數(shù)據(jù)的特征。

關(guān)于“如何利用Python實現(xiàn)數(shù)據(jù)導(dǎo)入和可視化”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI