《python數(shù)據(jù)分析原理與應(yīng)用》課件 王華清 第1-4章 數(shù)據(jù)分析概述 - pandas數(shù)據(jù)挖掘_第1頁(yè)
《python數(shù)據(jù)分析原理與應(yīng)用》課件 王華清 第1-4章 數(shù)據(jù)分析概述 - pandas數(shù)據(jù)挖掘_第2頁(yè)
《python數(shù)據(jù)分析原理與應(yīng)用》課件 王華清 第1-4章 數(shù)據(jù)分析概述 - pandas數(shù)據(jù)挖掘_第3頁(yè)
《python數(shù)據(jù)分析原理與應(yīng)用》課件 王華清 第1-4章 數(shù)據(jù)分析概述 - pandas數(shù)據(jù)挖掘_第4頁(yè)
《python數(shù)據(jù)分析原理與應(yīng)用》課件 王華清 第1-4章 數(shù)據(jù)分析概述 - pandas數(shù)據(jù)挖掘_第5頁(yè)
已閱讀5頁(yè),還剩185頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Python數(shù)據(jù)分析原理與應(yīng)用

第1章大數(shù)據(jù)分析基礎(chǔ)1.1課程概述1.2軟件安裝1.3基本操作1.1課程概述

1.1.1教學(xué)目的了解大數(shù)據(jù)分析的基本內(nèi)涵掌握大數(shù)據(jù)分析的基本方法培養(yǎng)大數(shù)據(jù)分析的應(yīng)用能力數(shù)據(jù)采集數(shù)據(jù)預(yù)處理數(shù)據(jù)存儲(chǔ)分析和挖掘網(wǎng)絡(luò)爬蟲(chóng)日志采集傳感器RFID射頻技術(shù)數(shù)據(jù)抽取數(shù)據(jù)清洗特征選擇數(shù)據(jù)標(biāo)準(zhǔn)化HDFSNoSQLRDBMS等方法數(shù)據(jù)分析數(shù)據(jù)挖掘機(jī)器學(xué)習(xí)統(tǒng)計(jì)學(xué)等數(shù)據(jù)的異構(gòu)性和不完備性問(wèn)題。數(shù)據(jù)處理的時(shí)效性問(wèn)題。數(shù)據(jù)的安全與隱私保護(hù)問(wèn)題。大數(shù)據(jù)的數(shù)據(jù)類(lèi)型:結(jié)構(gòu)化數(shù)據(jù)(MySQL,Access),半結(jié)構(gòu)化數(shù)據(jù)(HTML,JSON,日志文件),非結(jié)構(gòu)化數(shù)據(jù)(文檔,圖片,視頻,音頻)(1)數(shù)據(jù)分析師如對(duì)非結(jié)構(gòu)化大數(shù)據(jù)、各種電子文檔數(shù)據(jù)、各種數(shù)據(jù)庫(kù)數(shù)據(jù)的再加工、分析、展示。學(xué)了以后可以做什么?(2)人工智能開(kāi)發(fā)工程師如視頻、音頻、圖片的識(shí)別及應(yīng)用如文字、符號(hào)等的處理及應(yīng)用(3)數(shù)據(jù)科學(xué)家的科學(xué)研究如經(jīng)濟(jì)系統(tǒng)的仿真實(shí)驗(yàn)如管理建模與商務(wù)智能尚需努力:百尺竿頭,更進(jìn)一步!大數(shù)據(jù)挖掘分析師:學(xué)完本課程后,你初步具備了中級(jí)數(shù)據(jù)分析師的水平,可以解決日常大量結(jié)構(gòu)化為主的數(shù)據(jù)業(yè)務(wù)處理問(wèn)題。但是數(shù)據(jù)處理范圍還包括了非結(jié)構(gòu)化數(shù)據(jù)的處理,由此至少必須深入掌握一門(mén)關(guān)系數(shù)據(jù)庫(kù),如MySQL;另外,有的同學(xué)應(yīng)該掌握NoSQL數(shù)據(jù)庫(kù),以處理大數(shù)據(jù)的存儲(chǔ)及計(jì)算;還有一部分同學(xué)需要掌握分布式計(jì)算,如Spark、Hadoop等。人工智能開(kāi)發(fā)工程師:需要研究專(zhuān)題視頻識(shí)別庫(kù)(如OpenCV庫(kù)等)、自然語(yǔ)言處理,需要研究專(zhuān)業(yè)算法及語(yǔ)言,并通過(guò)C++、JAVA、Python、matlab、R等實(shí)現(xiàn)算法設(shè)計(jì),集成到實(shí)際工程中,建議學(xué)習(xí)深度學(xué)習(xí)(Tensorflow、PyTorch庫(kù)等)、

MicrosoftCNTK(深度學(xué)習(xí)工具包)、Theano(值計(jì)算庫(kù))、強(qiáng)化學(xué)習(xí)、博弈論等。數(shù)據(jù)科學(xué)家的科學(xué)研究:深入學(xué)習(xí)有關(guān)擴(kuò)展庫(kù),研究數(shù)據(jù)挖掘、演化學(xué)習(xí)、集成學(xué)習(xí)、聯(lián)邦學(xué)習(xí)、遷移學(xué)習(xí)等內(nèi)容,并深入學(xué)習(xí)有關(guān)業(yè)務(wù)專(zhuān)題分析庫(kù)。后續(xù)學(xué)習(xí)、研究方向1.1.2課程內(nèi)容第1章大數(shù)據(jù)分析基礎(chǔ):課程描述、環(huán)境配置、Python回顧等第2章mumpy與數(shù)組運(yùn)算:數(shù)組的建立、矩陣運(yùn)算等第3章Matplotlib與可視化:圖像構(gòu)成要素、繪制圖像等第4章pandas與數(shù)據(jù)挖掘:創(chuàng)建數(shù)據(jù)框、統(tǒng)計(jì)分析等第5章文件的讀與寫(xiě)操作:txt、csv、xslx、doc等文件操作第6章sympy與符號(hào)計(jì)算:創(chuàng)建符號(hào)、符號(hào)運(yùn)算等第7章scipy與科學(xué)計(jì)算:解方程組、優(yōu)化問(wèn)題等第8章

Sklearn與回歸分析:標(biāo)準(zhǔn)化、線(xiàn)性回歸、邏輯斯蒂回歸等先修課程:高等數(shù)學(xué)、數(shù)理統(tǒng)計(jì)、Python等課程作業(yè)(知識(shí)掌握與基本分析能力)100分,占總評(píng)成績(jī)20%。

1次作業(yè)。

課程實(shí)驗(yàn)(知識(shí)熟練與問(wèn)題解決能力)100分,占總評(píng)成績(jī)30%。1次綜合實(shí)驗(yàn)。課程考試(知識(shí)熟練與靈活應(yīng)用能力)100分,占總評(píng)成績(jī)50%。閉卷,100分鐘。1.1.3.考核方式4.教材與參考書(shū)目[美]羅伯特·約翰遜著,Python科學(xué)計(jì)算和數(shù)據(jù)科學(xué)應(yīng)用,清華大學(xué)出版社,2020年6月。余本國(guó),Python大數(shù)據(jù)分析與應(yīng)用實(shí)戰(zhàn),電子工業(yè)出版社出版,2021年12月。李增剛,Python編程基礎(chǔ)與科學(xué)計(jì)算,清華大學(xué)出版社,2022年3月。周志華等著,大數(shù)據(jù)分析研究進(jìn)展,科學(xué)出版社,2022年10月。1.2軟件安裝1.2.1python回顧/downloads/(1)list[]:列表range()、append()、len()、max()、min()、sum()、connt()、pop()、sort()、reverse()、index()、copy()(2)dict{}:字典get()、items()、keys()、values()、Counter()、defaultdict()(3)判斷與循環(huán)if,for,while(4)函數(shù)與類(lèi)def(x),class(self)(5)文件操作1.2.2Anaconda的安裝Anaconda包括了課程所要用到的所有庫(kù),Jupyter、Matplotlib、Numpy、Scipy、Pandas、Scikit-learn多個(gè)科學(xué)計(jì)算庫(kù)。/anaconda/archive/在開(kāi)始菜單選擇AnacondaPrompt命令,彈出終端界面。anaconda擴(kuò)展庫(kù)的安裝condainstallnumpy:安裝numpy擴(kuò)展庫(kù)condalist:列示所有安裝的擴(kuò)展庫(kù)condaupgradenumpy:更新numpy擴(kuò)展庫(kù)condaupgrade–all:更新所有的擴(kuò)展庫(kù)conda–version:檢查conda的安裝版本condaupgradeconda:升級(jí)conda到最新版本擴(kuò)展庫(kù)名-i鏡像網(wǎng)站網(wǎng)址使用pip、conda工具安裝擴(kuò)展庫(kù)。Bydatascientists,fordatascientistscondainstalljieba–i/simple1.3基本操作1.3.1JupyterNotebook的特點(diǎn)是一款以科學(xué)計(jì)算為主的,可以進(jìn)行探索式(文學(xué)式)代碼開(kāi)發(fā),基于Web的開(kāi)發(fā)工具。常用于科學(xué)計(jì)算、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)操作環(huán)境。編程時(shí)具有語(yǔ)法高亮、縮進(jìn)、tab補(bǔ)全的功能以及各種快捷鍵可供使用??芍苯油ㄟ^(guò)瀏覽器運(yùn)行代碼,同時(shí)在代碼塊下方展示運(yùn)行結(jié)果。以富媒體格式展示計(jì)算結(jié)果。富媒體格式包括:HTML,LaTeX,PNG,SVG等。支持numpy,pandas等嵌入開(kāi)發(fā)。在“開(kāi)始”菜單里找到Anaconda,點(diǎn)擊啟動(dòng)編譯軟件,進(jìn)入如下界面。也可以在終端運(yùn)行:jupyternotebook--port88881.3.2Jupyter主界面使用主界面功能:主界面是代碼文件的列表管理界面,為代碼文件提供了建立、刪除、復(fù)制、打開(kāi)、排序、關(guān)閉運(yùn)行、重命名、下載、上傳等功能。1.3.3代碼編輯界面將當(dāng)前.ipynb文件保存為.py文件重新運(yùn)行全部單元格運(yùn)行所在單元格之前的全部單元格1.3.4單元格執(zhí)行狀態(tài)JupyterNotebook有兩種模式:命令行模式(CommandMode,藍(lán)色單元格);編輯模式(EditMode,綠色單元格)。對(duì)于代碼對(duì)象的使用幫助,可以用?、help()來(lái)實(shí)現(xiàn)。importnumpyasnp?np.abs#?查看abs函數(shù)的使用幫助信息help(np.abs)#help()查看abs函數(shù)的使用幫助信息執(zhí)行結(jié)果(略)

1.3.5JupyterNotebook快捷鍵(1)命令模式Y(jié):單元格進(jìn)入代碼格式M:單元格進(jìn)入Markdown模式1:一級(jí)標(biāo)題;2:二級(jí)標(biāo)題Shift+M:

合并單元格A/B:在上(下)插入單元格X:剪切單元格C:復(fù)制單元格Shift+L:全部代碼塊顯示行號(hào)O:隱藏輸出(2)編輯模式Ctrl+]:縮進(jìn)Ctrl+/:注釋Ctrl+M:進(jìn)入命令模式Ctrl+Shift+-:切分代碼塊Shift+Enter:運(yùn)行并選中下一塊Ctrl+Enter:運(yùn)行代碼塊Alt+Enter:運(yùn)行并在下方插入新塊例1-1古詩(shī)橫排改豎排研讀例1-2代碼在第一段代碼前添加1級(jí)標(biāo)題:牛仔帽;在第一段代碼后添加2級(jí)標(biāo)題:瑞士卷;在第三段代碼前添加3級(jí)標(biāo)題:維度災(zāi)難;顯示、取消行號(hào);顯示、取消目錄;注釋?zhuān)s進(jìn))第一段代碼中33-38行;取消剛才的注釋?zhuān)s進(jìn));運(yùn)行全部單元格;清除全部單元格輸出;刪除所有空白單元格;在文檔末尾添加單元格并進(jìn)入Markdown模式,粘貼一副圖片和文字。試著進(jìn)入PPT模式。自行練習(xí)其他操作。例1-2課堂練習(xí)第2章numpy與數(shù)組運(yùn)算經(jīng)濟(jì)管理學(xué)院大數(shù)據(jù)管理科學(xué)系主要內(nèi)容2.1數(shù)組基礎(chǔ)2.2數(shù)學(xué)計(jì)算2.3通用函數(shù)2.4矩陣運(yùn)算2.5奇異分解2.1數(shù)組基礎(chǔ)

importnumpyasnp導(dǎo)入numpyarr1=np.array([1,2,3,4])#創(chuàng)建一維數(shù)組數(shù)組參數(shù):列表,元組等。元素類(lèi)型:整型、字符型、布爾型、浮點(diǎn)型、復(fù)數(shù)型等。注意:若數(shù)值型與字符型混合,會(huì)全部轉(zhuǎn)換為字符串。2.1.1創(chuàng)建數(shù)組創(chuàng)建三維數(shù)組:arr2=np.array([[[100,98,99],[88,78,95]],[[98,97,99],[89,91,68]]])班組員工1月份合格率2月份合格率3月份合格率甲張三1009899李四887895乙王五989799趙六899168989799899168axis=0:縱深axis=1:垂直axis=2:水平[[[1009899][887895]][[989799][899168]]]arr2=np.array([[[100,98,96],[88,78,95]],[[98,97,99],[89,91,68]]])三維數(shù)組的形態(tài)1009896887895axis=1:水平axis=0:垂直班組員工1月份合格率2月份合格率3月份合格率甲張三1009896李四887895乙王五989799趙六899168三維數(shù)組的顯示二、三維數(shù)組的空間刻畫(huà)①arange([start,]stop[,step,],dtype=None)np.arange(0,1,0.1)np.arange(5,0,-1)②linspace(start(起始值),stop(結(jié)束值),num=50(樣本數(shù)),endpoint=True(包括結(jié)束值),retstep=False(返回?cái)?shù)組里包含步長(zhǎng)),dtype=None,axis=0):在指定的范圍內(nèi)返回均勻步長(zhǎng)的樣本數(shù)組。步長(zhǎng)計(jì)算公式(stop-start)/(num-1)(endpoint=True)np.linspace(0,4,5)③logspace(start,stop,num=50,endpoint=True,base=10.0,dtype=None,axis=0)np.logspace(0,2,20)2.1.2數(shù)組屬性a=np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]])維數(shù):a.ndim

#2

形狀:a.shape#(3,4)數(shù)據(jù)類(lèi)型:a.dtype

#int32元素個(gè)數(shù):a.size#12每個(gè)元素的大?。篴.itemsize#42.1.3數(shù)組方法t=np.arange(9)t.reshape(3,3)t.astype(float)2.1.4數(shù)組連接c1=np.array([[100,99,100],[98,99,97]])c2=np.array([[88,88,87],[85,92,89]])print(np.hstack((c1,c2)))#水平對(duì)接行一致print(np.vstack((c1,c2)))#垂直對(duì)接列一致,(c1,c2)元組形式2.1.5數(shù)組分割arr=np.arange(16).reshape(4,4)水平方向分割:np.hsplit(arr,2)

np.split(arr,2,axis=1)垂直方向分割:np.vsplit(arr,2)np.split(arr,2,axis=0)2.1.6數(shù)組索引arr=np.arange(1,20,2)arr[5]arr[:5])arr[3:5]arr[:-1])arr[5:1:-2]arr[[4,3,0,6]]arr[[-3,-5,-7]]2.1.7數(shù)組切片arr=np.array([[1,2,3,4,5],[4,5,6,7,8],[7,8,9,10,11]])arr[0,3:5]arr[1:,2:]arr[:,2]121315141617191820212322a=np.arange(24).reshape(2,3,4)array([[[0,1,2,3],[4,5,6,7],[8,9,10,11]],[[12,13,14,15],[16,17,18,19],[20,21,22,23]]])01324576891110print(a[1,0,0])#下標(biāo)1為第三維的第2行,中間0為第二維的第1行,最右邊0為第一維的第1列

print(a[1,1,1])修改值a[1,0,2]=-1print(a)三維數(shù)組的索引與切片axis=2:水平axis=1:垂直axis=0:縱深2.2數(shù)學(xué)計(jì)算2.2.1四則運(yùn)算one=np.arange(1,5).reshape(2,2)one+=4(賦值運(yùn)算生成新數(shù)組)two=np.arange(6,10).reshape(2,2)print(two/2)print(two//2)print(one-two)print(one*two)print(one/two)print(one%two)2.2.2復(fù)合運(yùn)算one5=np.arange(9).reshape(3,3)p1=np.full((3,3),2)print(one5**p1)print(np.power(one5,p1))print(one5**2)print(np.square(one5))2.2.3數(shù)組排序a1=np.array([[100,0,45],[12,89,35],[50,40,60]])print(np.sort(a1,axis=1))#按行(默認(rèn))排序,不改變?cè)瓟?shù)組a1.sort(axis=0)#該函數(shù)改變?cè)瓟?shù)組順序2.3通用函數(shù)print(np.exp([1,2,3]))print(np.exp2([1,2]))print(np.log(10))print(np.log10(10))x=np.linspace(0,2*np.pi)y=np.sin(x)z=np.arcsin(y)xx=np.arange(4)print(np.sinh(xx))radian=[0,np.pi/6,np.pi/4]print(np.degrees(radian))degrees=[0,30,45,60,90,180]np.radians(degrees)/np.piprint(np.hypot(3,4))print(np.hypot([3,3,3],[4,4,4]))2.3.1初等函數(shù)2.3.2隨機(jī)函數(shù)np.random.rand(2,6)#產(chǎn)生2乘6的[0,1)隨機(jī)數(shù)組rn=np.random.randn(10)#產(chǎn)生10個(gè)標(biāo)準(zhǔn)狀態(tài)分布的隨機(jī)數(shù)np.round(rn,2)#保留兩位小數(shù)np.random.randint(4,size=8)#產(chǎn)生8個(gè)在[0,4)內(nèi)的隨機(jī)整數(shù)np.random.randint(0,4,size=(2,5))#產(chǎn)生(2,5)個(gè)在[0,4)的整數(shù)np.random.choice(5,3,replace=False,p=[0.4,0.2,0.1,0.2,0.1])#隨機(jī)抽樣np.random.shuffle(arr)#洗牌,原地操作2.3.3統(tǒng)計(jì)函數(shù)a=np.array([[10,0,9],[8,9,9],[9,10,9]])b=np.array([[np.nan,10,9],[np.NaN,10,9],[10,10,10]])np.sum(a,axis=1)np.nansum(b)np.max(a,axis=0)np.nanmax(b,axis=1)np.nanmin(b,axis=1)np.mean(a,axis=1)#均值

np.median(a,axis=0)np.var(a,axis=1)np.std(a,axis=1)np.average(a1,axis=1,weights=[0.8,0,0.2])#加權(quán)平均2.4矩陣運(yùn)算2.4.1求行列式importnumpyasnpd=np.array([[1,2],[3,4]])v1=np.linalg.det(d)np.around(v1,decimals=2)importnumpy.linalgasLAV2=LA.det(d)LA.det(np.random.randint(-5,6,size=(3,3,3)))#求三維矩陣行列式2.4.2矩陣轉(zhuǎn)置①建立矩陣:matrix(data,dtype=None,copy=True)np.matrix(np.arange(9).reshape(3,3))np.matrix([[1,2,3],[4,5,6],[7,8,9]])np.matrix(((1,2),(3,4),(5,6)))

②矩陣轉(zhuǎn)置:A.Tx=np.arange(16).reshape(2,2,4)

np.transpose(x,(1,0,2))#移動(dòng)軸

2.4.3求逆矩陣

2.4.4求特征根與特征向量特征值、特征向量:eig(a)

A=np.matrix([[3,1],[1,3]])w,v=np.linalg.eig(A)print('特征值',w)print('特征向量',v)

2.4.5解方程組①矩陣(數(shù)組)乘積函數(shù):dot(a,b)a=np.ones(8).reshape(2,4)b=np.array([[0,1],[0,2],[0,3],[0,4]])print(np.dot(a,b))②solve求線(xiàn)性方程組解:函數(shù)solve(A,b)

A=np.matrix([[1,-1,-1],[2,-1,-3],[3,2,-5]])b=[2,1,0]print(np.linalg.solve(A,b))

③求最小二乘解:函數(shù)lstsq(A,b)A=np.array([[3,1],[2,1],[1,1],[0,1]])b=np.array([-1,0.5,2,0.3])x=np.linalg.lstsq(A,b)x1,x2=np.linalg.lstsq(a,b,rcond=None)[0]print('x1=%.2f,x2=%.2f'%(x1,x2))回歸系數(shù)殘差平方和系數(shù)矩陣的秩系數(shù)矩陣的奇異值2.5奇異值分解奇異值分解(SingularValueDecomposition,SVD):函數(shù)svd(A,full_matrices=True,compute_uv=True)A(m,n)為二維或以上實(shí)數(shù)或復(fù)數(shù)數(shù)組,full_matrices確定返回矩陣u、vh的大小,默認(rèn)值True,則返回(m,m)和(n,n),F(xiàn)alse則返回(m,k)和(k,n),其中k=min(m,n)。計(jì)算結(jié)果返回左奇異向量U、奇異值σ、右奇異向量V矩陣。U大小為(m,m),σ大小為(k),V大小為(n,n)。2.5.1奇異值分解的計(jì)算(1)求ATA的特征值和特征向量計(jì)算對(duì)稱(chēng)矩陣W=ATA求解特征方程,得到特征值

,并將特征值由大到小排列將特征值

代入特征方程求得對(duì)應(yīng)的特征向量.(2)求n階正交矩陣V將特征向量單位化,得到單位特征向量

,構(gòu)成n階正交矩陣V.(3)求

m

x

n

對(duì)角矩陣計(jì)算A的奇異值構(gòu)造

mx

n

矩形對(duì)角矩陣

,主對(duì)角線(xiàn)元素是奇異值,其余元素是零.(4)求m階正交矩陣U對(duì)A的前r個(gè)正奇異值,令得到求AT的零空間的一組標(biāo)準(zhǔn)正交基

并令(5)得到奇異值分解例:求下列矩陣的奇異值分解

importnumpyasnpA=np.array([[4,11,14],[8,7,-2]])u,s,vh=np.linalg.svd(A)print(u,s,vh)print(u.shape,s.shape,vh.shape)2.5.2圖像處理初步scikit-image是基于scipy的一款圖像處理包,將圖片作為numpy數(shù)組進(jìn)行處理。fromskimageimportio,data使用skimage.io.imread(fname)函數(shù)讀取圖片。使用skimage.io.imshow(arr)顯示arr數(shù)組表示的圖片。io.show()print(type(img))#類(lèi)型print(img.shape)#形狀print(img.shape[0])#圖片高度print(img.shape[1])#圖片寬度print(img.shape[2])#圖片通道數(shù)print(img.size)#顯示總像素個(gè)數(shù)print(img.max())#最大像素值print(img.min())#最小像素值print(img.mean())#像素平均值使用io.imsave(fname,arr)保存對(duì)彩色圖片的像素點(diǎn)訪(fǎng)問(wèn)方式如下:img[i,j,c]其中:i表示圖片的行數(shù);j表示圖片的列數(shù);c表示圖片的通道數(shù)(RGB三通道分別對(duì)應(yīng)0,1,2)。坐標(biāo)從左上角開(kāi)始。圖片裁剪:由于圖片是以numpy數(shù)組進(jìn)行存儲(chǔ),因此對(duì)于數(shù)組的裁剪,就是對(duì)圖片的裁剪。fromskimageimportio,dataimg=data.astronaut()partial_img=img[50:150,170:270,:]io.imshow(partial_img)#生成圖像io.show()62第3章matplotlib可視化經(jīng)濟(jì)管理學(xué)院大數(shù)據(jù)管理科學(xué)系《大數(shù)據(jù)分析技術(shù)》教學(xué)團(tuán)隊(duì)主要內(nèi)容3.1準(zhǔn)備工作3.2可視化的元素3.3二維圖的繪制3.4三維圖的繪制3.5可視化的應(yīng)用%matplotlibinline#在單元格下面普通顯示圖像

%matplotlibtk#單獨(dú)顯示,有調(diào)圖工具條

%matplotlibnotebook#在單元格下面顯示,有調(diào)圖工具條

%configInlineBackend.figure_format=‘svg’#矢量圖設(shè)置

%configInlineBackend.figure_format=“retina”

圖像保存格式:svg:可伸縮矢量圖形jpg:位圖,最常用的圖片格式

bmp:位圖,未壓縮pdf:直接輸出為pdfpng:位圖,無(wú)損壓縮

查看本機(jī)字體C:\Windows\Fonts3.1

準(zhǔn)備工作復(fù)原、左移、右移、任意移動(dòng)、放大、設(shè)置參數(shù)、保存例3-1

初識(shí)可視化1.繪制折線(xiàn)圖實(shí)戰(zhàn)【例3-2可視化銷(xiāo)售情況】某商品進(jìn)價(jià)49元,售價(jià)75元,現(xiàn)在商場(chǎng)新品上架搞促銷(xiāo)活動(dòng),顧客每多買(mǎi)一件就給優(yōu)惠1%,但是每人最多可以購(gòu)買(mǎi)30件。計(jì)算并使用曲線(xiàn)圖可視化顧客購(gòu)買(mǎi)數(shù)量num與商家收益、顧客總消費(fèi)以及顧客省錢(qián)情況的關(guān)系,并標(biāo)記商場(chǎng)收益最大的銷(xiāo)售數(shù)量和商場(chǎng)收益。3.2

可視化的元素①函數(shù)plot:展示變量變化趨勢(shì)②函數(shù)scatter:尋找變量之間的關(guān)系③函數(shù)xlim:設(shè)置坐標(biāo)軸的數(shù)值顯示范圍④函數(shù)xlabel:設(shè)置坐標(biāo)軸的標(biāo)簽文本⑤函數(shù)grid:繪制刻度線(xiàn)的網(wǎng)格線(xiàn)⑥函數(shù)axhline:繪制平行坐標(biāo)軸的參考線(xiàn)⑦函數(shù)axvspan:繪制垂直坐標(biāo)軸的參考區(qū)域⑧函數(shù)annotate:添加注釋文本⑨函數(shù)text:添加圖像內(nèi)容注釋⑩函數(shù)title:添加圖像內(nèi)容的標(biāo)題⑾函數(shù)legend:標(biāo)示圖像的文本標(biāo)簽圖例回顧使用pyplot繪圖的一般過(guò)程為:首先生成或讀入數(shù)據(jù),然后根據(jù)實(shí)際需要繪制折線(xiàn)圖、散點(diǎn)圖、柱狀圖、餅狀圖、條形圖、雷達(dá)圖或三維曲線(xiàn)和曲面,接下來(lái)設(shè)置坐標(biāo)軸標(biāo)簽(可以使用matplotlib.pyplot模塊的xlabel()、ylabel()函數(shù)或軸域的set_xlabel()、set_ylabel()方法)、坐標(biāo)軸刻度(可以使用matplotlib.pyplot模塊的xticks()、yticks()函數(shù)或軸域的set_xticks()、set_yticks()方法)、圖例(可以使用matplotlib.pyplot模塊的legend()函數(shù))、標(biāo)題(可以使用matplotlib.pyplot模塊的title()函數(shù))等圖形屬性,最后顯示或保存繪圖結(jié)果。每一種圖形都有特定的應(yīng)用場(chǎng)景,對(duì)于不同類(lèi)型的數(shù)據(jù)和可視化要求,要選擇最合適類(lèi)型的圖形進(jìn)行展示,不能生硬地套用某種圖形。

upperright:1upperleft:2lowerleft:3lowerright:4right:5centerleft:6centerright:7lowercenter:8uppercenter:9center:103.3二維圖的繪制例3-4繪制柱狀圖:bar()7980例3-5繪制餅圖8183箱線(xiàn)圖84例3-6繪制箱線(xiàn)圖85例3-7繪制直方圖88例3-8繪制極坐標(biāo)圖89例3-9繪制多子圖如果要繪制三維圖形,首先需要使用下面的語(yǔ)句導(dǎo)入相應(yīng)的對(duì)象:frommpl_toolkits.mplot3dimportAxes3D然后使用下面方式之一聲明要?jiǎng)?chuàng)建三維子圖:ax=fig.gca(projection='3d’)ax=plt.axes(projection='3d’)ax=plt.subplot(111,projection='3d')就可以使用ax的plot()方法繪制三維曲線(xiàn)、plot_surface()方法繪制三維曲面、scatter()方法繪制三維散點(diǎn)圖或bar3d()方法繪制三維柱狀圖了。3.4三維圖的繪制例3-10繪制三維柱狀圖例3-11繪制三維散點(diǎn)圖例3-12繪制三維曲面圖

103補(bǔ)充:例3-13繪制網(wǎng)絡(luò)圖課堂練習(xí)按示例繪制函數(shù)圖像課堂練習(xí)按示例繪制函數(shù)圖像

第4章pandas數(shù)據(jù)挖掘4.1Series4.2DataFrame4.3存取數(shù)據(jù)4.4數(shù)據(jù)清洗4.5數(shù)據(jù)挖掘大數(shù)據(jù)分析技術(shù)教學(xué)團(tuán)隊(duì)Pandas(AQRCapitalManagement于2008.4開(kāi)發(fā),2009年開(kāi)源,來(lái)自于面板數(shù)據(jù)(paneldata)和python數(shù)據(jù)分析(dataanalysis)。PanelData,也叫“平行數(shù)據(jù)”,是指在時(shí)間序列上選取m個(gè)截面,同時(shí)選取n個(gè)樣本觀(guān)測(cè)值所構(gòu)成的樣本數(shù)據(jù),即m×n的數(shù)據(jù)矩陣。Pandas主要有兩部分組成:Series和DataFrame。Series的本質(zhì)是只有一列的數(shù)據(jù)表,而DataFrame是由多個(gè)Series組合的多維表。最新版本

1.5.0(2022.9.19),Time-Series:以時(shí)間為索引的Series;Panel

:三維的數(shù)組,DataFrame的容器;Panel4D:Panel的4維數(shù)據(jù)容器;PanelND:可創(chuàng)建像Panel4D一樣N維命名容器。4.1Series4.1.1創(chuàng)建Seriess=pd.Series(np.array([3,5,7,9]))importpandasaspd4.1.2Series索引4.2DataFrame4.2.1創(chuàng)建DataFrame4.2.2索引DataFramedf.iloc[]:只能使用整數(shù)索引,不能使用標(biāo)簽索引df.iloc[3]:索引位置為3的行,即第四行的值#print(E.iloc['Tom'])#語(yǔ)法錯(cuò)誤df.iloc[[0,2,3]]:索引第一、三、四行切片df.iloc[0:3]:索引第一到第四行,切片選擇數(shù)據(jù)時(shí),前閉后開(kāi)df.iloc[df.index!=0]:索引除第一行外所有行df.iloc[1:5,1:5]:會(huì)有最多4×4的df數(shù)據(jù)子集

df.loc[]:只能使用標(biāo)簽索引,不能使用整數(shù)索引,整數(shù)必須為標(biāo)簽名。loc[]:接受兩個(gè)參數(shù),并以‘,‘分隔,分別表示行、列。df.loc[1:5,1:5]:最多5×5的df數(shù)據(jù)子集,包括邊界(開(kāi)始和結(jié)束)。df.loc[‘a(chǎn)bc’]:行標(biāo)簽為abc的行。

列表,df.loc[[‘a(chǎn)’,‘b’,‘c’]]:

索引行標(biāo)簽分別為a,b,c的行。

切片,df.loc[‘a(chǎn)’:‘b’]:

索引行標(biāo)簽為從a到b的行df.loc[:]:所有行。df.loc[:,:]:索引所有行和列。

布爾數(shù)組,與軸長(zhǎng)度一致,df.loc[[True,True,False]]:索引為T(mén)rue的行。df.loc[df.index!=2,:]:索引除行標(biāo)簽為2外的所有行和列。4.2.3修改DataFrame數(shù)據(jù)4.2.4刪除DataFrame數(shù)據(jù)4.2.5添加DataFrame數(shù)據(jù)4.2.6排序見(jiàn)示例4.2.7數(shù)據(jù)計(jì)算4.3讀寫(xiě)數(shù)據(jù)4.3.1CSV格式導(dǎo)入導(dǎo)出參考:Pandas.read_csv()函數(shù)及全部參數(shù)使用方法一文詳解+實(shí)例代碼Mode:寫(xiě)入模式,默認(rèn)為wr:只能讀,文件必須存在,可在任意位置讀取r+:可讀可寫(xiě),文件必須存在,可在任意位置讀寫(xiě)w:只能寫(xiě),文件可以不存在,必會(huì)擦掉原有內(nèi)容從頭寫(xiě)w+:可讀可寫(xiě),文件可以不存在,會(huì)擦掉原有內(nèi)容從頭寫(xiě)a:只能寫(xiě),文件可以不存在,不修改原有內(nèi)容,只能在結(jié)尾追加a+:可讀可寫(xiě),文件可以不存在,只在結(jié)尾追加寫(xiě)4.3.2Excel文件導(dǎo)入導(dǎo)出condainstallopenpyxl-i/pypi/simple參考:Pandas讀取excel文件(pandas.read_excel)4.4數(shù)據(jù)清洗4.4.1重復(fù)值的處理4.4.2缺失值的處理缺失數(shù)據(jù)的識(shí)別:用NaN表示缺失示例:

學(xué)號(hào)班級(jí)姓名性別英語(yǔ)體育軍訓(xùn)數(shù)分高代解幾0230802424123080242成龍男7678.077.04023601230802424423080242周怡女6691.075.04747442230802425123080242張波男8581.075.04545603230802424923080242朱浩男6550.080.07262714230802421923080242封印女7388.092.06147465230802420123080242遲培男6050.089.07176716230802434723080243李畢女6761.084.06165787230802430723080243陳田男7679.086.06940698230802432623080243余皓男6667.085.06561719230802432023080243李嘉女62NaN90.060677710230802434223080243李上初男7690.084.060666011230802431023080243郭竇女7967.084.064647912230802443523080244姜毅濤男7771.0NaN61737613230802443223080244趙宇男7474.088.068707114230802444623080244周路女7680.077.061748015230802442123080244林建祥男7272.081.063907516230802443323080244李大強(qiáng)男7976.077.078707017230802442823080244李則通男6496.091.069607718230802440223080244王慧女7374.093.070717519230802442223080244李曉虎男8560.085.072728320230802420123080242遲培男6050.089.0717671刪除數(shù)據(jù)為空所對(duì)應(yīng)的行:df.dropna()用其他數(shù)值代替NaN:df.fillna(‘?’)用前一個(gè)數(shù)值替代NaN:df.fillna(method=‘pad’)用后一個(gè)數(shù)值替代NaN:df.fillna(method=‘bfill’)對(duì)不同的列填充不同的值:

df.fillna({‘軍訓(xùn)':100,‘體育':0})只有行里的數(shù)據(jù)全部為空時(shí)才刪除:df.dropna(how='all')刪除列:df.dropna(how=‘a(chǎn)ll’,axis=1)4.4.3數(shù)據(jù)合并(1)mergeabcd041571657129912312931616321a_xbc_xd_xa_yc_yd_y001234571456767128910119123129abcd00123145672891011312131415a_xbc_xd_xa_yc_yd_y001234.05.07.0145676.07.01.028910119.0123.0129.0312131415NaNNaNNaN(2)appendprint(data1.append(data2,ignore_index=True))(3)joindata2.columns=list('pown')result=data1.join(data2)#右連接,列名不能重疊

abcd00123145672891011312131415441575657169912312971616321abcdpown0012341571456765712891011991231293121314151616321(4)concatabcddata100123145672891011312131415data2041571657129912312931616321data3041571657

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論