洪麗華,周衛(wèi)紅,黃瓊慧
(1.廈門軟件職業(yè)技術(shù)學(xué)院 軟件工程學(xué)院,福建 廈門 361000;2.云南民族大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,昆明 650031)
隨著科學(xué)的發(fā)展,各行各業(yè)需要處理的數(shù)據(jù)量急劇增加。有的需要批量處理,有的需要借助相關(guān)的軟件來(lái)處理,有的甚至還需要通過(guò)編寫代碼來(lái)處理。那么,如何體現(xiàn)所處理數(shù)據(jù)的結(jié)果呢?數(shù)據(jù)可視化,是當(dāng)前最受歡迎的方法。Python是處理大數(shù)據(jù)的最主要程序設(shè)計(jì)語(yǔ)言之一。結(jié)合本人參加百度公司和浙江大學(xué)組織的人工智能相關(guān)培訓(xùn)項(xiàng)目,本文從Python、數(shù)據(jù)可視化和二維圖形3大方面進(jìn)行闡述。
Python是一種面向?qū)ο?、開(kāi)源、免費(fèi)和功能強(qiáng)大的程序設(shè)計(jì)語(yǔ)言,提供了豐富和強(qiáng)大的標(biāo)準(zhǔn)庫(kù),還提供了大量的第三方庫(kù)。第三方庫(kù)的功能涉及人工智能、數(shù)據(jù)分析與處理和Web應(yīng)用開(kāi)發(fā)等領(lǐng)域[1]。Python是處理數(shù)據(jù)的主要語(yǔ)言之一。
Python自帶的IDLE是集成開(kāi)發(fā)環(huán)境(Integrated Development and Learning Environment)[2]。打開(kāi)IDLE環(huán)境,其是一種交互式的開(kāi)發(fā)環(huán)境,提供了交互式運(yùn)行、程序編寫和運(yùn)行等功能。Python提供了不同操作系統(tǒng)版本,包括Windows操作系統(tǒng)版本、Linux操作系統(tǒng)版本、Mac操作系統(tǒng)版本及其他操作系統(tǒng)版本。讀者可以登錄Python的官方網(wǎng)站下載并進(jìn)行安裝。
Python的官方下載網(wǎng)址為:https://www.Python.org/downloads/。
Python的官方網(wǎng)站提供了Python的所有免費(fèi)版本。根據(jù)Windows的操作系統(tǒng),選擇合適的Python版本的壓縮包,下載、安裝。按照相應(yīng)的步驟,安裝完P(guān)ython后,從開(kāi)始、所有程序、Python和IDLE,啟動(dòng)Python IDLE的編程環(huán)境。
數(shù)據(jù)可視化是處理數(shù)據(jù)的一項(xiàng)關(guān)鍵技術(shù)[3]。數(shù)據(jù)可視化是通過(guò)各種各樣的圖形來(lái)體現(xiàn)數(shù)據(jù)的相關(guān)性、對(duì)比性和變化趨勢(shì)等內(nèi)容,用戶可以通過(guò)這些圖形所提供的內(nèi)容進(jìn)一步分析和應(yīng)用。數(shù)據(jù)可視化的作用,是把與信息、數(shù)據(jù)等相關(guān)的內(nèi)容以圖形的形式更清晰、更有效地傳達(dá)和展現(xiàn)給用戶。在某種程度上,從交流或表達(dá)的效果來(lái)看,數(shù)據(jù)可視化往往比文字更形象、更直接和更容易被用戶理解。
Matplotlib是一個(gè)開(kāi)源的數(shù)據(jù)可視化工具包[4],是Python中最受開(kāi)發(fā)者喜歡的繪圖庫(kù),而且其功能全面、用途廣泛。Matplotlib可以繪制出各式各樣的圖形,比如:曲線圖、直方圖、散點(diǎn)圖、折線圖、餅狀圖、柱形圖、箱線圖、頻譜圖和雷達(dá)圖等。Matplotlib不僅僅可以繪制2D圖形,也可以繪制3D圖形,還可以繪制動(dòng)畫。
運(yùn)用Matplotlib進(jìn)行數(shù)據(jù)圖形繪制時(shí),一般包括以下內(nèi)容:數(shù)據(jù)區(qū)(數(shù)據(jù)點(diǎn)、數(shù)據(jù)曲線)、坐標(biāo)軸(x軸、y軸、z軸及其標(biāo)簽、刻度)、標(biāo)題、圖例及圖形文本、注解等其他描述[5]。
在Matplotlib庫(kù)中,常用的函數(shù)有:axis()、title()、legend()、xlabel()、ylabel()、zlabel()、xlim()、ylim()、zlim()、xticks()、yticks()、zticks()、text()、annotate()、plot()、subplot()、hist()、bar()、grid()、pie()、boxplot()、scatter()和arrange()等[6]。
由于Matplotlib依賴于Numpy模塊,安裝完P(guān)ython后,再安裝第三方庫(kù)Numpy,然后再安裝第三方庫(kù)Matplotlib??梢栽诰€安裝,也可以先下載安裝包、再安裝。在doc窗口中安裝第三方庫(kù)時(shí)運(yùn)用命令pip install--,成功安裝完會(huì)顯示Successfully installed--。運(yùn)用命令pip list可以顯示已安裝了哪些第三方庫(kù)及其版本號(hào)。
為了提高學(xué)生的整體學(xué)習(xí)水平和成績(jī),現(xiàn)有一組經(jīng)過(guò)采集得到的學(xué)生成績(jī)和影響因素的數(shù)據(jù)集。而且為了更加清晰地了解學(xué)生成績(jī)的最主要影響因素,現(xiàn)在需要對(duì)數(shù)據(jù)集進(jìn)行分析處理,通過(guò)可視化找到特征與平均成績(jī)的相關(guān)性。
相關(guān)的步驟及代碼如下[7],圖形如圖1所示。
從運(yùn)行結(jié)果的箱形圖來(lái)看,數(shù)據(jù)是非常集中的,說(shuō)明”reading score”因素對(duì)學(xué)生的平均成績(jī)和學(xué)習(xí)水平的影響是非常大的,這給學(xué)校教師的教學(xué)和學(xué)生的學(xué)習(xí)提供了準(zhǔn)確的指導(dǎo)方向。如果學(xué)校加強(qiáng)學(xué)生在”reading score”方面的學(xué)習(xí)、引導(dǎo)和監(jiān)督,就會(huì)提高學(xué)生的成績(jī),提高學(xué)校的教學(xué)水平和教學(xué)質(zhì)量。
1912年,泰坦尼克號(hào)在第一次航行中與冰山相撞沉沒(méi),導(dǎo)致了大部分乘客和船員身亡。在本項(xiàng)目中,將探索部分泰坦尼克號(hào)乘客名單,來(lái)確定哪些特征可以最好地預(yù)測(cè)一個(gè)人是否會(huì)生還。
從泰坦尼克號(hào)的數(shù)據(jù)樣本中,可以看到船上每位旅客的特征。
從以上運(yùn)行結(jié)果的柱形圖可以明顯看出,不同性別(男性和女性)的乘客、不同年齡的乘客,在此災(zāi)難中,生還率是不同的。20~30歲的乘客的生還率比其他年齡段乘客的生還率高,女性乘客的生還率比男性乘客的生還率高。
IMDB數(shù)據(jù)集是一個(gè)對(duì)電影評(píng)論標(biāo)注為正向評(píng)論與負(fù)向評(píng)論的數(shù)據(jù)集,共有25 000條文本數(shù)據(jù)作為訓(xùn)練集,25 000條文本數(shù)據(jù)作為測(cè)試集。該數(shù)據(jù)集的官方地址為http://ai.stanford.edu/amaas/data/sentiment/。
相關(guān)的步驟及代碼如下[8],圖形如圖4和圖5所示。#[validation]accuracy:0.5147247314453125,loss:0.694599 9264717102
從以上運(yùn)行結(jié)果的折線圖,利用正向評(píng)論和負(fù)向評(píng)論的數(shù)據(jù)集,可以清晰地判斷出accuracy和loss的變化情況。
基于Python的數(shù)據(jù)可視化,是目前眾多學(xué)者所追求的一項(xiàng)技術(shù),也是處理數(shù)據(jù)中最受歡迎的一種方法。這種方法所體現(xiàn)的各種各樣的圖形,能夠充分地表達(dá)數(shù)據(jù)間的相關(guān)性及其變化趨勢(shì),能夠最大化地被用戶掌握和運(yùn)用。基于Python的數(shù)據(jù)可視化,是一項(xiàng)可以繼續(xù)擴(kuò)展和延伸的技術(shù)。