深入淺出Python編程課件-數(shù)據(jù)結構_第1頁
深入淺出Python編程課件-數(shù)據(jù)結構_第2頁
深入淺出Python編程課件-數(shù)據(jù)結構_第3頁
深入淺出Python編程課件-數(shù)據(jù)結構_第4頁
深入淺出Python編程課件-數(shù)據(jù)結構_第5頁
已閱讀5頁,還剩96頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

深入淺出Python編程

數(shù)據(jù)結構)繪制CPC歷史決議詞云圖

直接顯示詞云圖片使用jieba模塊實現(xiàn)分詞操作使用with-as語句打開文件;使用列表/元組實現(xiàn)對關鍵詞的統(tǒng)計;使用列表推導式獲取前20的關鍵詞。Outcome單元目標/Objectives理解線性(linear)數(shù)據(jù)結構

熟練掌握列表list的使用

熟練掌握元組tuple的使用

理解Python對象的可變與不可變

掌握文件數(shù)據(jù)輸入基本操作⑥具有愛國情懷和民族自信心內(nèi)容及計劃/Agenda&Schedule8/6ClassHoursDetails專科應用本科<00:10><00:10>回顧&成果目標<00:25><00:25>文件的基本操作<02:40><02:00>使用列表&創(chuàng)建詞云圖<02:00><01:20>元組使用及改寫實現(xiàn)<00:05><00:05>課堂小結Total:8/6hours(6/4hPractice)01《決議》詞云圖CloudWord1.任務分析目標解構一是,從《決議》文件讀取全文本內(nèi)容二是,提取關鍵詞并統(tǒng)計關鍵詞出現(xiàn)的次數(shù)三是,生成并顯示詞云圖片模式識別文件數(shù)據(jù)輸入/只讀分詞->過濾->去重->統(tǒng)計->排序Top201.任務分析模式歸納(關鍵詞1,出現(xiàn)次數(shù)),(關鍵詞2,出現(xiàn)次數(shù))……的數(shù)據(jù)結構來表示“關鍵詞-次數(shù)”數(shù)據(jù)對序列結構可以使用列表(list)統(tǒng)計結果可以使用列表或元組算法設計open()函數(shù)等方法打開文件/jieba第三方模塊實現(xiàn)分詞列表/元組操作數(shù)據(jù)/sort()方法或sorted()函數(shù)實現(xiàn)排序wordcloud+matplotlib繪制并顯示詞云圖2.任務準備jieba模塊第三方中文分詞函數(shù)庫jieba.lcut()WordCloud模塊第三方詞云庫,根據(jù)你給出字符串,以不同的大小、顏色顯示出來中文需要提供使用字體的路徑,否則會出現(xiàn)亂碼wordcloud.WordCloud()創(chuàng)建詞云圖2.任務準備matplotlib模塊Python最著名的2D繪圖庫只使用matplotlib.pyplot繪制wordcloud生成的詞云圖片matplotlib模塊①引入模塊初始化環(huán)境,設想已經(jīng)準備好了一塊畫板;②準備好要使用的數(shù)據(jù);③把數(shù)據(jù)裝入坐標軸,畫圖/渲染兩種方法:①axes.Axes對象在畫板figure.Figure上畫圖;②matplotlib.pyplot()02文件輸入FileInput1.讀取文件輸入認識文件文本文件(textfile):基于字符編碼(ASCII、UTF-8等)的文件,能夠使用字符串str對象讀寫的文件對象(fileobject)二進制文件(binaryfile):基于值,沒有編碼,只是一個字節(jié)序列,存儲的是二進制數(shù)據(jù)打開文件語法:stream=open(file_name,mode)r-以只讀方式(read)打開文件;如果省略時,默認值為'r'w-以寫(write)數(shù)據(jù)方式打開文件,如果同名文件已經(jīng)存在,則會被覆蓋a-打開文件并追加(append)內(nèi)容,任何寫入的數(shù)據(jù)會自動添加到文件末尾t-表示操作的是一個文本(text)文件b-表示操作的是一個二進制(binary)文件1.讀取文件輸入f.read(size):讀取并返回最多size個字符f.readline():讀取單行數(shù)據(jù)f.write(str):把str的內(nèi)容寫入文件f.close():關閉文件2.使用with打開文件with-as上下文管理器(contextmanager)讀取決議文件數(shù)據(jù)并分詞03列表List1.列表的基本操作—

創(chuàng)建中文標點符號列表創(chuàng)建列表[]/

list()元素是有位序的1.列表的基本操作—

創(chuàng)建中文標點符號列表創(chuàng)建拼音字符列表的兩種方式[]:直接賦值創(chuàng)建list():將一個字符串進行類型轉換創(chuàng)建1.列表的基本操作—

訪問和遍歷列表訪問列表數(shù)據(jù)項索引切片1.列表的基本操作—

訪問和遍歷列表遍歷列表數(shù)據(jù)項值迭代索引遍歷1.列表的基本操作—

修改列表及計算在列表中添加元素append()extend()1.列表的基本操作—

修改列表及計算更新列表中的元素重新賦值數(shù)據(jù)項要確保“回寫”1.列表的基本操作—

修改列表及計算列表的計算操作加法:合并列表乘法:重復列表1.列表的基本操作—

(逆序)刪除標點符號列表的刪除操作pop()方法:按元素的位置刪除remove()方法:按元素的值刪除del命令1.列表的基本操作—

(逆序)刪除標點符號刪除標點符號執(zhí)行刪除操作的過程中數(shù)據(jù)項的位置會發(fā)生改變故采用逆序搜索前進1.列表的基本操作—

列表的嵌套:remove()刪除拼音嵌套列表的數(shù)據(jù)項又可以是一個列表,這稱之為列表的嵌套形如[

['!',10],['《',8],……]按值遍歷刪除拼音字符remove()方法遍歷刪除copy():生成一份列表的副本count():統(tǒng)計數(shù)據(jù)項在列表中出現(xiàn)的次數(shù)統(tǒng)計關鍵詞頻次2.統(tǒng)計分詞關鍵詞出現(xiàn)的頻次關鍵詞去重3.排序關鍵詞并繪制詞云圖排序sort()方法物理排序sorted()函數(shù)邏輯排序3.排序關鍵詞并繪制詞云圖列表推導式(listcomprehension)處理一個序列中的所有或部分元素并返回結果列表的一種緊湊寫法3.排序關鍵詞并繪制詞云圖列表推導式(listcomprehension)列表推導式實現(xiàn)雞兔同籠問題實際是使用嵌套列表解析(NestedListComprehensions)獲得top20關鍵詞3.排序關鍵詞并繪制詞云圖創(chuàng)建詞云圖創(chuàng)建/配置WordCloud對象空格分隔關鍵詞生成詞云圖片顯示詞云圖Plt.imgshow()Plt.show()繪制詞云圖4.復制和清空列表—

深復制和淺復制copy()vs.=4.復制和清空列表—

深復制和淺復制嵌套列表的賦值情況4.復制和清空列表—

深復制和淺復制deepcopy()4.復制和清空列表—

清空列表clear()方法:只是簡單的清空列表的數(shù)據(jù)[]重新賦值:重新分配內(nèi)存空間04元組tuple1.元組的基本操作創(chuàng)建元組/tupletuple()/()1.元組的基本操作創(chuàng)建元組/tuple要創(chuàng)建只有一個元素的元組,要在這個元素的后面加一個逗號1.元組的基本操作索引與運算元組是有序的,可以按位序進行索引操作元組也可以進行加法和乘法操作,與列表類似1.元組的基本操作遍歷for–in的成員運算符進行迭代“賦值”元組是不可變的2.使用元組統(tǒng)計關鍵詞關鍵詞統(tǒng)計數(shù)據(jù)對,用元組替換列表2.使用元組統(tǒng)計關鍵詞元組推導式求解百雞百錢問題使用列表改寫繪制詞云圖統(tǒng)計關鍵詞代碼使用列表推導式,求解百雞百錢問題課堂小結列表是Python中非常高頻使用的一種數(shù)據(jù)類型,和字符串一樣,它也支持索引、切片,以及加法、乘法等操作和計算。對列表的遍歷可以通過數(shù)據(jù)項的位序索引,也可以直接遍歷列表的數(shù)據(jù)項。可以使用列表自帶的sort()方法,也可以使用Python提供的內(nèi)置函數(shù)sorted()。元組與列表很像,但使用場景不同,用途也不同。元組是不可變的(immutable)數(shù)據(jù)類型,可以包含異質元素序列。提問&解答深入淺出Python編程

數(shù)據(jù)結構)繪制人口普查數(shù)據(jù)圖表

利用全國第七次人口普查數(shù)據(jù)繪制圖表全國人口:人口數(shù)最多的省份、按序展示柱狀圖地區(qū)人口:湖南省14個地州市人口分布地圖Outcome單元目標/Objectives理解映射(map)數(shù)據(jù)結構

熟練掌握字典dict的使用

熟練掌握結合set的基本使用

掌握結構化數(shù)據(jù)的文件讀寫操作

掌握簡單的異常處理⑥

具有人本情懷與和諧共生理念內(nèi)容及計劃/Agenda&Schedule8/6ClassHoursDetails??茟帽究?lt;00:10><00:10>回顧&成果介紹<00:40><00:40>字典及半結構化數(shù)據(jù)讀取<01:40><01:20>字典視圖及排序&全國人口柱狀圖<00:40><00:20>異常處理和程序調試<01:25><00:45>網(wǎng)絡數(shù)據(jù)輸入&地區(qū)人口分布圖<00:40><00:40>集合數(shù)據(jù)類型及基本使用<00:05><00:05>課堂小結Total:8/6hours(6/4hPractice)01人口普查數(shù)據(jù)圖表Humangraphicsinfo1.任務分析目標解構數(shù)據(jù)處理:提取、清洗、分析、可視化獲取數(shù)據(jù):從csv數(shù)據(jù)文件中讀?。粡木W(wǎng)絡API訪問可視化/圖表:柱狀圖;GEO地圖模式識別csv和json半結構化數(shù)據(jù)處理數(shù)據(jù)排序pyecharts可視化圖表庫1.任務分析模式歸納映射結構(map)處理半結構化數(shù)據(jù)Python中字典(dict)數(shù)據(jù)類型就是映射型Python自帶的csv和json兩個模塊處理文件數(shù)據(jù);自帶urllib模塊處理網(wǎng)絡訪問算法設計csv—>dict;dict—>jsontuple()vskey-valuesorted()對字典進行排序2.任務準備csv模塊即逗號分隔值文件(CommaSeparatedValues)純文本的方式存數(shù)數(shù)據(jù)json模塊JSON(JavaScriptObjectNotation)是一種基于文本,獨立于語言的輕量級數(shù)據(jù)交換格式。JSON格式是純文本2.任務準備urllib模塊urllib.request更高級別的HTTP客戶端接口,建議使用第三方模塊requestspyecharts模塊Echarts+Python將Python代碼“翻譯”成前端的JavaScript代碼實現(xiàn)可視化。02字典dict1.字典的基本使用—

創(chuàng)建字典字典的結構以逗號分隔的“鍵:值”({key:

value})1.字典的基本使用—

創(chuàng)建字典多種創(chuàng)建字典的方式:字典是一種動態(tài)結構dict()函數(shù)創(chuàng)建直接使用花括號{key:

value}創(chuàng)建dict.fromkeys(

)1.字典的基本使用—

修改字典按key引用字典的數(shù)據(jù)項目,再對其進行修改;或者使用update()方法1.字典的基本使用—

修改字典使用數(shù)字做字典的key時,并不區(qū)分相同大小的兩個整數(shù)數(shù)字和浮點型數(shù)字1.字典的基本使用——

刪除字典字典的刪除操作方法pop(key[,default]):可以刪除字典給定鍵key所對應的值popitem()可以刪除字典中的最后一對鍵和值,并將該數(shù)據(jù)項作為刪除操作的返回值del語句deldict_var[key]不存在該key的數(shù)據(jù)項會報錯2.讀取全國人口數(shù)據(jù)字典映射CSV文件與半結構化數(shù)據(jù)使用DictReader()和DictWrite()以字典的形式讀寫數(shù)據(jù),每行中的數(shù)據(jù)映射到一個字典兩列數(shù)據(jù)對應的列名分別為“provice”和“population”,我們將作為字典的key來使用“全國”統(tǒng)計匯總行的數(shù)據(jù)將刪除,不需要使用2.讀取全國人口數(shù)據(jù)字典映射獲取31個大陸省份的人口數(shù)03遍歷并排序全國人口數(shù)據(jù)字典值enumerate&sort1.操作字典視圖對象—

什么是字典視圖對象?字典視圖對象:一個字典的動態(tài)視圖,可以被迭代、并支持成員檢測dict.keys():返回由字典所有的key/鍵組成的一個新視圖dict.values():返回由字典所有的value/值組成的一個新視圖dict.items():返回由字典所有的key-value/鍵-值對組成的一個新視圖1.操作字典視圖對象—

求最大值和最小值函數(shù)max()函數(shù)求最大值min()函數(shù)求最小值設置滑塊數(shù)值區(qū)間

2.降序排序人口數(shù)據(jù)字典值—

字典解包解包(unpacking)把一個集合/容器(collection)數(shù)據(jù)進行分解、逐個取出來使用一個或兩個星號(*,或**)解包可迭代對象Python對可迭代對象的解包操作都是自動完成2.降序排序人口數(shù)據(jù)字典值—

字典遍歷遍歷keys()、values()、items()可以分別遍歷字典的鍵、值和鍵值對/數(shù)據(jù)項for-in循環(huán)遍歷字典對象默認是遍歷字典的鍵key2.降序排序人口數(shù)據(jù)字典值—

字典排序字典是無序的字典本身是無序的,并不直接支持排序但把每個key/value對抽象成一個值,那么整個字典又是線性的,可以使用sorted()函數(shù)對其進行排序操作可以按keys、values和items/實際就是按key排序2.降序排序人口數(shù)據(jù)字典值—

字典排序字典是無序的字典本身是無序的,并不直接支持排序但把每個key/value對抽象成一個值,那么整個字典又是線性的,可以使用sorted()函數(shù)對其進行排序操作可以按keys、values和items/實際就是按key排序2.降序排序人口數(shù)據(jù)字典值—

排序全國人口數(shù)字典遍歷:將k/v對調sort()對嵌套列表排序/value降序切片操作,截取top1004創(chuàng)建全國人口數(shù)柱狀圖Bar1.數(shù)據(jù)可視化庫pyechart的使用一切皆配置InitOpts:初始化配置項TitleOpts:標題配置項VisualMapOpts:視覺映射配置項LabelOpts:標簽配置項2.創(chuàng)建top10人口數(shù)柱狀圖準備圖表數(shù)據(jù)X軸數(shù)據(jù)Y軸數(shù)據(jù)最大/最小值2.創(chuàng)建top10人口數(shù)柱狀圖準備圖表數(shù)據(jù)X軸數(shù)據(jù)Y軸數(shù)據(jù)最大/最小值創(chuàng)建并配置Bar圖圖表標題title可視化映射組件:min/max,顏色渲染輸出html文件05創(chuàng)建地區(qū)人口分布地圖GEO1.了解異常處理及調試程序錯誤值—

錯誤的類型3種錯誤類型語法錯誤(Syntaxerrors)運行錯誤(Runtimeerrors)邏輯錯誤(Logicerrors)1.了解異常處理及調試程序錯誤值—

異常的處理語法格式首先,執(zhí)行try子句(try和except關鍵字之間的代碼)如果沒有觸發(fā)異常,則跳過except子句,try語句執(zhí)行完畢;如果執(zhí)行try子句時發(fā)生了異常,則跳過觸發(fā)異常代碼后面剩余部分,進而與except關鍵字后面的異常類型(Except_Type)進行比對,如果發(fā)現(xiàn)異常的類型匹配成功,則執(zhí)行except子句,最后,再繼續(xù)執(zhí)行try-except語句之后的代碼。try語句有兩個可選子句,一個是else子句,一個是finally子句,前者當try子句中沒有異常觸發(fā)時執(zhí)行,后者無論try子句中的代碼有沒有引發(fā)異常,都會執(zhí)行。所有的except必須在else和finally之前,else必須在finally之前。1.了解異常處理及調試程序錯誤值—

文件預處理等效的文件處理1.了解異常處理及調試程序錯誤值—

文件預處理從csv文件獲取省份所包含的地州市名稱1.了解異常處理及調試程序錯誤值—

調試程序設置斷點斷點(breakpoint)是指希望程序執(zhí)行過程中暫停的位置,以便于我們能更進一步的觀查變量的值、判斷條件是否成立等啟動調試環(huán)境選擇調試配置1.了解異常處理及調試程序錯誤值—

調試程序跟蹤運行繼續(xù)/暫停(Continue/PauseF5):暫停或直接執(zhí)行完代碼,直到下一個斷點。單步執(zhí)行(StepOverF10):單步執(zhí)行,但不進入被調用函數(shù)。單步進入(StepIntoF11):單步執(zhí)行,進入被調用函數(shù)。跳出(StepOutShift+F11):跳出單步執(zhí)行模式。重啟(RestartCtrl+Shift+F5):重啟調試環(huán)境。停止(StopShift+F5):停止調試程序。2.網(wǎng)絡API查詢城市經(jīng)緯度坐標—

http與requests兩個概念HTTP(HyperTextTransferProtocol)超文本傳輸協(xié)議實現(xiàn)萬維網(wǎng)上各種資源的鏈接URL(UniformResourceLocator,統(tǒng)一資源定位器)訪問過程建立連接:客戶端的瀏覽器向服務端發(fā)出建立連接的請求,服務端給出響應就可以建立連接了;發(fā)送請求:客戶端按照協(xié)議的要求通過連接向服務端發(fā)送自己的請求;給出應答:服務端按照客戶端的要求給出應答,把結果(HTML文件)返回給客戶端;關閉連接:客戶端接到應答后關閉連接。https://xxx.xxx.xx.xx/index.html協(xié)議/服務域名/地址文件路徑/資源2.網(wǎng)絡API查詢城市經(jīng)緯度坐標—

http與requests訪問天地圖網(wǎng)站過程的示意圖瀏覽器發(fā)起訪問URL請求向DNS請求解析的IP地址服務器響應,將文檔index.html發(fā)送給瀏覽器釋放TCP連接瀏覽器顯示index.html中的內(nèi)容InternetWeb服務器xxx.xxx.xx.xx客戶機(瀏覽器)Index.htmlIP:2HTTPoverTCPTCP連接建立TCP連接請求文檔1HTTP請求報文響應文檔2HTTP響應報文釋放TCP連接瀏覽器與服務器建立TCP連接(80端口)DNS將解析出的IP地址2返回瀏覽器瀏覽器請求文檔:GET/index.html2.網(wǎng)絡API查詢城市經(jīng)緯度坐標—

http與requestshttp://api_hub#分析數(shù)據(jù)analyze()#識別二維碼ocr()#語音轉文字recognizeText()MyPythonCodehttp://api_hub/analyzeAPIAPI(ApplicationProgrammingInterface)指應用程序編程接口訪問方式GET方式:以查詢字符串(querystring)的形式傳遞查詢參數(shù),對于中文、標點符號等需要進行轉義處理,傳遞的字符數(shù)量有限制。POST方式:將要傳遞查詢參數(shù)封裝到消息體中進行傳遞,對于特殊字符不需要進行轉義處理,能夠傳遞的數(shù)據(jù)量大,包括圖片。2.網(wǎng)絡API查詢城市經(jīng)緯度坐標—

字典與JSON數(shù)據(jù)json.loads():將已編碼的JSON字符串解碼為Python對象,轉換規(guī)則為:object->dict,array->list,string->str,number(int)->int,number(real)->float,true->True,false->False,null->Nonejson.dumps():將Python對象編碼成JSON字符串,轉換規(guī)則為:dict->object,list/tuple->array,str->string,int/float->number,True->true,F(xiàn)alse->false,None->null2.網(wǎng)絡API查詢城市經(jīng)緯度坐標—

查詢城市經(jīng)緯度天地圖API返回的結果GEO地圖經(jīng)緯度josn文件格式2.網(wǎng)絡API查詢城市經(jīng)緯度坐標—

查詢城市經(jīng)緯度3.創(chuàng)建城市人口分布GEO地圖獲取湖南省14個地州市的人口數(shù)只需要使用前2列數(shù)據(jù),字典讀取,key為:city和population3.創(chuàng)建城市人口分布GEO地圖zip函數(shù)組合列表[‘北京‘,’天津‘,’河北‘,’山西‘,'內(nèi)蒙古'][21893095,13866009,74610235,34915616,……]3.創(chuàng)建城市人口分布GEO地圖準備數(shù)據(jù)繪制GEO地圖創(chuàng)建地區(qū)/城市人口分布GEO地圖06集合Set1.集合及其基本操作關于集合集合(set)數(shù)據(jù)類型是一個無序的不重復元素序列Python中的集合(set)與數(shù)學中的集合概念類似

溫馨提示

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

評論

0/150

提交評論