董欣
(沈陽(yáng)師范大學(xué)計(jì)算機(jī)與數(shù)學(xué)基礎(chǔ)教學(xué)部,遼寧 沈陽(yáng) 110034)
Python是數(shù)據(jù)科學(xué)與數(shù)據(jù)分析領(lǐng)域的最好用的編程語(yǔ)言。豐富的第三方庫(kù)、開源社區(qū)、及不斷優(yōu)化的使用文檔,為許多非計(jì)算機(jī)領(lǐng)域的學(xué)習(xí)者提供了廣闊的入門與精通渠道。所以本文基于Python,簡(jiǎn)要介紹 Python 在數(shù)據(jù)分析中的思路與應(yīng)用場(chǎng)景。
Python有大量的工具庫(kù),例如:numpy、matplotlib、Seaborn、pandas、scikit-learn等工具庫(kù)。
NumPy:用于簡(jiǎn)化數(shù)組和矩陣的操作,是一種開源的數(shù)值計(jì)算擴(kuò)展。這種工具可用來存儲(chǔ)和處理大型矩陣,比Python自身的嵌套列表(nested list structure)結(jié)構(gòu)要高效的多,支持大量的維度數(shù)組與矩陣運(yùn)算,此外也針對(duì)數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫(kù)。
Matplotlib:第一個(gè) Python 可視化程序庫(kù),提供了完整的2D和有限3D圖形支持。盡管它已有十多年的歷史,但仍然是Python社區(qū)中使用最廣泛的繪圖庫(kù)。
Seaborn:Seaborn利用Matplotlib的強(qiáng)大功能,可以只用幾行代碼就創(chuàng)建漂亮的圖表。關(guān)鍵區(qū)別在于Seaborn的默認(rèn)款式和調(diào)色板設(shè)計(jì)更加美觀和現(xiàn)代。
Pandas:基于numpy構(gòu)建的,為時(shí)間序列分析提供了很好的支持。pandas中有兩個(gè)主要的數(shù)據(jù)結(jié)構(gòu),一個(gè)是Series,另一個(gè)是DataFrame。該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas 納入了大量庫(kù)和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具。
Anaconda是一個(gè)開源的Python發(fā)行版本,其包含了conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng),本質(zhì)是一個(gè)包管理器和環(huán)境管理器。anaconda用于大規(guī)模數(shù)據(jù)處理、預(yù)測(cè)分析、科學(xué)計(jì)算等,致力于簡(jiǎn)化包的管理和部署。
安裝anaconda時(shí)建議勾選“Register Anaconda as the system Python 3.x”,則設(shè)置Anaconda為系統(tǒng)默認(rèn)的python環(huán)境,這樣就可以直接使用其集成的所有工具包。
按照數(shù)據(jù)可視化的一般流程,要先進(jìn)行數(shù)據(jù)讀取。本文以各種不同等級(jí)的2種商品銷售情況數(shù)據(jù)為例,把Excel文檔作為數(shù)據(jù)源進(jìn)行數(shù)據(jù)讀取。
使用NumPy中函數(shù)genfromtxt() 讀取Excel非常容易,該函數(shù)生成NumPy數(shù)組:
IO=’C:\Users\Administrator\python\data.xls’
data=pd.read_excel(io=IO)
在Python 中,一個(gè)函數(shù)可以有數(shù)量可變的參數(shù),可以通過指定所需的參數(shù)來傳遞一個(gè)參數(shù)的子集。數(shù)組是非常強(qiáng)大的矩陣狀對(duì)象,并且可以很容易地分割成更小的數(shù)組。
接下來,把讀取到數(shù)組中的數(shù)據(jù)通過matplotlib庫(kù)中的工具繪制折線圖進(jìn)行分析,由x軸,y軸和代表數(shù)據(jù)的折線構(gòu)成。
x1=[‘1特級(jí)’,‘2一級(jí)’,‘3標(biāo)準(zhǔn)’,‘4中等’,‘5普通’]
y1=data[‘總評(píng)’]#A商品不同等級(jí)銷售量
x2=[‘1特級(jí)’,‘2一級(jí)’,‘3標(biāo)準(zhǔn)’,‘4中等’,‘5普通’]
y2=data[‘卷面’]#B商品不同等級(jí)銷售量
圖1 商品等級(jí)銷售折線圖
本文運(yùn)用Python對(duì)2種不同等級(jí)的商品銷售情況數(shù)據(jù)進(jìn)行分析,旨在為數(shù)據(jù)分析提供了一種新的思路綜上,在科學(xué)研究、教學(xué)和軟件開發(fā)領(lǐng)域,如何實(shí)現(xiàn)更加精準(zhǔn)而簡(jiǎn)潔的數(shù)據(jù)分析是一個(gè)重要研究方向,需要我們不斷的探索和實(shí)踐。