版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Python人工智能編程基礎(chǔ)項目十一
數(shù)據(jù)運算操作主講教師:XXX課前導(dǎo)入假設(shè)您是一名氣象學家,負責分析一周內(nèi)的氣溫數(shù)據(jù)以預(yù)測未來的氣候趨勢。您需要創(chuàng)建一個存儲每日最高氣溫的科學計算數(shù)組,并根據(jù)每天溫度的變化對氣溫數(shù)據(jù)集合進行修改,以滿足后續(xù)分析和可視化的需求。這些工作都離不開NumPy和Pandas庫,本項目將詳細介紹相關(guān)數(shù)據(jù)運算操作。重難點重點:難點:掌握NumPy數(shù)組的修改操作、基本運算及廣播機制;掌握Pandas基本數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)處理、分析方法理解NumPy廣播機制的規(guī)則及應(yīng)用;靈活運用Pandas處理缺失值、重復(fù)值等數(shù)據(jù)問題CONTENTS修改數(shù)據(jù)集合數(shù)組運算操作Pandas基本操作Pandas數(shù)據(jù)處理目錄CONTENTS01020304parTONE修改數(shù)據(jù)集合01知識儲備:數(shù)據(jù)添加與刪除1np.append():數(shù)據(jù)添加
格式為np.append(arr,values,axis=None)。參數(shù):arr為目標數(shù)組,values為要附加的值或數(shù)組,axis指定附加的軸,為None時數(shù)組展平后附加。importnumpyasnparr=np.array([1,2,3])new_arr=np.append(arr,[4,5,6])print(new_arr)#輸出[123456]例:知識儲備:數(shù)據(jù)添加與刪除1np.delete():數(shù)據(jù)刪除
格式為np.delete(arr,obj,axis=None)。參數(shù):arr為目標數(shù)組,obj為要刪除的索引或切片,axis指定刪除的軸,為None時數(shù)組展平后刪除。arr=np.array([1,2,3,4,5,6])new_arr=np.delete(arr,2)print(new_arr)#輸出[12456]例:知識儲備:修改數(shù)據(jù)形狀1reshape方法
形狀改變但數(shù)據(jù)和原數(shù)組相同,新形狀元素數(shù)量需與原數(shù)組一致arr=np.array([1,2,3,4,5,6])reshaped_arr=arr.reshape((2,3))print(reshaped_arr)#輸出[[123][456]]例:知識儲備:修改數(shù)據(jù)形狀1resize方法
可改變數(shù)組形狀和大小,新大小大于原大小時插入重復(fù)元素,小于時截取部分arr=np.array([1,2,3,4,5,6])resized_arr2=np.resize(arr,(3,3))print(resized_arr2)#輸出[[123][456][123]]例:知識儲備:修改數(shù)據(jù)形狀1設(shè)置shape屬性直接修改原始數(shù)組形狀,新形狀元素數(shù)量需與原數(shù)組一致arr=np.array([1,2,3,4,5,6])arr.shape=(2,3)print(arr)#輸出[[123][456]]例:知識儲備:數(shù)組展平1flatten()和ravel():均將多維數(shù)組展平為一維數(shù)組,不修改原始數(shù)組arr_2d=np.array([[1,2,3],[4,5,6]])flattened_arr=arr_2d.flatten()raveled_arr=arr_2d.ravel()print(flattened_arr)#輸出[123456]print(raveled_arr)#輸出[123456]例:知識儲備:數(shù)組分割1函數(shù)名稱說明hsplit對數(shù)組進行橫向分割vsplit對數(shù)組進行縱向分割split對數(shù)組進行橫向和縱向分割例:arr=np.arange(12).reshape(3,4)split_arr=np.hsplit(arr,2)#水平分割split_arr_v=np.vsplit(arr,3)#垂直分割知識儲備:數(shù)組組合1函數(shù)名稱說明hstack實現(xiàn)數(shù)組的橫向組合vstack實現(xiàn)數(shù)組的縱向組合concatenate通過參數(shù)axis實現(xiàn)縱向或橫向組合例:arr1=np.array([1,2,3])arr2=np.array([4,5,6])result_hstack=np.hstack((arr1,arr2))#水平組合result_vstack=np.vstack((arr1,arr2))#垂直組合任務(wù)實操——創(chuàng)建數(shù)組1任務(wù)實操數(shù)組的合并與展平此任務(wù)通過介紹使用Numpy實現(xiàn)數(shù)組的創(chuàng)建和操作,幫助大家更好地應(yīng)用Numpy解決實際問題。【例11.1】根據(jù)前面學過的NumPy數(shù)組創(chuàng)建的方法,創(chuàng)建包含1到10的奇數(shù)和偶數(shù)的數(shù)組,并將兩個數(shù)組沿垂直方向合并為1個數(shù)組,然后將合并的數(shù)組進行展平。具體編程示例:importnumpyasnpodd_array=np.arange(1,11,2)even_array=np.arange(2,11,2)result_vstack=np.vstack((odd_array,even_array))flattened_arr=result_vstack.flatten()print(flattened_arr)#輸出任務(wù)實操——數(shù)組形狀改變1【例11.2】使用NumPy創(chuàng)建1~9的數(shù)組,然后將其形狀改為3×3。具體編程示例:arr=np.arange(1,10)arr_2d=arr.reshape(3,3)print("創(chuàng)建的數(shù)組列表為:\n",arr)print("修改成二維的數(shù)組列表:\n",arr_2d)運行程序,輸出結(jié)果如下:創(chuàng)建的數(shù)組列表為:
[123456789]修改成二維的數(shù)組列表:
[[123][456][789]]任務(wù)鞏固——創(chuàng)建特殊數(shù)組1任務(wù)鞏固數(shù)組維度變換與合并請使用NumPy創(chuàng)建兩個數(shù)組,一個是:[9,8,7,6,5,4,3,2,1],另一個是:[6,6,6,6,6,6],將第一個數(shù)組形狀改為3×3,第二個數(shù)組形狀改為2×3。然后沿水平方向合并兩個數(shù)組為新數(shù)組,并打印結(jié)果。輸入示例:importnumpyasnparr1=np.array([9,8,7,6,5,4,3,2,1]).reshape(3,3)arr2=np.array([6,6,6,6,6,6]).reshape(2,3)merged_arr=np.hstack((arr1,arr2[:3,:]))#取arr2前3行與arr1合并print(merged_arr)parTTWO數(shù)組運算操作02知識儲備:數(shù)組運算2NumPy提供了豐富的數(shù)組運算操作,常見的有算術(shù)運算、數(shù)學運算、比較運算和邏輯運算等函數(shù)名稱運算符說明add(x,y)+計算數(shù)組x和數(shù)組y中各元素的和substract(x,y)-計算數(shù)組x和數(shù)組y中各元素的差multiply(x,y)*計算數(shù)組x和數(shù)組y中各元素的積divide(x,y)/計算數(shù)組x和數(shù)組y中各元素的商power(x,y)**計算數(shù)組x和數(shù)組y中各元素的冪abs(x)
計算數(shù)組x中各元素的絕對值exp(x)
計算自然數(shù)E的數(shù)組x中各元素的次冪log(x)
計算數(shù)組x中各元素的對數(shù)sqrt(x)
計算數(shù)組x中各元素的平方根equal(x,y)
判斷數(shù)組x和y中各元素是否相等知識儲備:廣播運算2廣播運算的規(guī)則: 1.讓所有輸入數(shù)組向shape最長的數(shù)組看齊,不足部分在前面加1補齊。 2.輸出數(shù)組shape是輸入數(shù)組各軸最大值。 3.輸入數(shù)組某軸與輸出對應(yīng)軸長度相同或為1時可計算,否則出錯。 4.輸入數(shù)組某軸長度為1時,沿該軸運算使用第一組值scalar=5arr=np.array([1,2,3])print(scalar*arr)#輸出[51015]arr1=np.array([[1,2,3],[4,5,6]])arr2=np.array([10,20,30])print(arr1+arr2)#輸出[[112233][142536]]例:任務(wù)實操——數(shù)組運算2任務(wù)實操數(shù)組運算此任務(wù)通過介紹使用NumPy數(shù)組的運算操作及廣播機制,幫助同學對數(shù)組的運算操作和廣播規(guī)則有更好地理解和應(yīng)用。【例10.3】假設(shè)有兩個NumPy數(shù)組,要求計算兩個數(shù)組的元素級別的和;計算兩個數(shù)組的元素級別的差;計算兩個數(shù)組的元素級別的乘積。提示:首先創(chuàng)建兩個數(shù)組,然后使用對應(yīng)的函數(shù)實現(xiàn)數(shù)組運算。任務(wù)實操——天氣數(shù)據(jù)管理2具體編程示例:arr1=np.array([1,2,3,4,5])arr2=np.array([5,4,3,2,1])result_add=np.add(arr1,arr2)result_subtraction=np.subtract(arr1,arr2)result_multiplication=np.multiply(arr1,arr2)print("數(shù)組元素級別加法結(jié)果:",result_add)print("數(shù)組元素級別減法結(jié)果:",result_subtraction)print("數(shù)組元素級別乘法結(jié)果:",result_multiplication)任務(wù)鞏固——廣播運算2任務(wù)鞏固廣播運算此任務(wù)要求使用Numpy數(shù)組的廣播機制,實現(xiàn)標量和數(shù)組以及數(shù)組與數(shù)組的廣播運算,可以按照以下步驟進行。①首先隨機創(chuàng)建一個二維數(shù)組,一個一維數(shù)組,和一個標量。②使用廣播將標量與數(shù)組相乘、相加,同時將數(shù)組的每一行與標量相除。③使用廣播將一維數(shù)組與二維數(shù)據(jù)進行加減運算。④輸出運行結(jié)果。parTTHREEPandas基本操作03知識儲備:Series對象3Series對象 Pandas中的Series是一種一維數(shù)組結(jié)構(gòu),可以容納任意數(shù)據(jù)類型。每個Series對象都由兩個主要部分組成:索引(Index)和數(shù)據(jù)(Data)。索引用于標識數(shù)據(jù),類似于字典中的鍵,而數(shù)據(jù)則是一維數(shù)組。數(shù)組:s=pd.Series(np.arange(5),index=['a','b','c','d','e'])字典:s=pd.Series({'a':0,'b':1,'c':2,'d':3,'e':4})列表:s=pd.Series([0,1,2,3,4],index=['a','b','c','d','e'])例:DataFrame對象:
Pandas中的DataFrame是一個二維標記數(shù)據(jù)結(jié)構(gòu),類似于電子表格或SQL表。DataFrame由行和列組成,每列可以包含不同的數(shù)據(jù)類型。它可以看作由Series組成的dict,每個Series看作DataFrame的一個列。它是Pandas中最常用的數(shù)據(jù)結(jié)構(gòu)之一,提供了豐富的功能來處理和分析數(shù)據(jù)。知識儲備:DataFrame對象3data_dict={'Name':['Cao','Fu','Lu'],'Age':[27,29,30], 'City':['WenZhou','HangZhou','ShangHai']}df_dict=pd.DataFrame(data_dict)#使用字典創(chuàng)建DataFrame#使用列表創(chuàng)建DataFramedata_list=[['Cao',27,'WenZhou'],['Fu',29,'HangZhou'],['Lu',30,'ShangHai']]df_list=pd.DataFrame(data_list,columns=['Name','Age','City’])#使用數(shù)組創(chuàng)建DataFramedata_array=np.array([['Cao',27,''WenZhou''],['Fu',29,'HangZhou'],['Lu',30,'ShangHai']])df_array=pd.DataFrame(data_array,columns=['Name','Age','City’])例:Pandas中DataFrame和Series類型都有一些常用的屬性,這些屬性提供了關(guān)于數(shù)據(jù)結(jié)構(gòu)的基本信息,利用這些屬性提供的功能可以用來處理和分析數(shù)據(jù)。知識儲備:常用屬性3屬性說明values以數(shù)組形式返回Series對象的所有元素index返回Series對象的索引dtype返回Series對象的數(shù)據(jù)類型shape返回Series對象的形狀nbytes返回Series對象的字節(jié)數(shù)ndim返回Series對象的維度size返回Series對象內(nèi)的元素個數(shù)T返回Series對象的轉(zhuǎn)置任務(wù)實操——簡單的Pandas數(shù)據(jù)操作3任務(wù)實操簡單的Pandas數(shù)據(jù)操作【例11.4】編寫一個Python程序,使用字典或列表創(chuàng)建一個包含學生信息的DataFrame,至少包含5名學生的信息,信息包括學生姓名(Name)、年齡(Age)、成績(Grade)。importpandasaspd#創(chuàng)建學生信息DataFramestudents_data={'Name':['Alice','Bob','Charlie','David','Emma'], 'Age':[20,22,21,23,20],'Grade':[85,90,78,92,88]}students_df=pd.DataFrame(students_data)print("學生信息DataFrame:")print(students_df)任務(wù)鞏固——DataFrame數(shù)據(jù)操作及屬性3任務(wù)鞏固DataFrame數(shù)據(jù)操作及屬性此任務(wù)要求使用Pands創(chuàng)建一個二維數(shù)組,實現(xiàn)學生成績的記錄與分析,可以按照以下步驟進行。①首先創(chuàng)建一個如下所示的DataFrame數(shù)組,模擬班級學生的成績信息。
NameMathEnglishScience0Alice8575901Bob9080852Charlie7892883David9288944Emma889587②輸出DataFrame的形狀;輸出DataFrame的列名;輸出學生的姓名列。③輸出創(chuàng)建的數(shù)組及相應(yīng)的屬性結(jié)果parTFOURPandas數(shù)據(jù)處理04知識儲備:數(shù)據(jù)訪問4Series訪問
通過索引位置(如s[0])或索引名稱(如s['a’])。DataFrame訪問
列:df['Math']、df[['Math','English’]]
行和列:df.loc[row_label,column_label](標簽)或 df.iloc[row_index,column_index](位置)
條件:df[(df['Math']>=85)&(df['English']>=85)]。在Pandas中,數(shù)據(jù)處理是數(shù)據(jù)分析過程中至關(guān)重要的一部分。常見的數(shù)據(jù)處理方法包括缺失值處理、重復(fù)值處理和異常值處理。知識儲備:數(shù)據(jù)處理3函數(shù)說明df.dropna()刪除缺失值df.fillna()用一個值來替換缺失值df.Interpolate()插值法填充缺失值df.drop_duplicates()去除重復(fù)數(shù)據(jù)統(tǒng)計分析是了解數(shù)據(jù)最常用的手段,在NumPy中提供了豐富的統(tǒng)計函數(shù),用于對數(shù)據(jù)進行統(tǒng)計分析,Pandas庫基于NumPy庫,因此,NumPy中的統(tǒng)計函數(shù)大都適用于Pandas中的數(shù)據(jù)統(tǒng)計分析。知識儲備:數(shù)據(jù)統(tǒng)計3函數(shù)名稱功能說明sum求和mean平均值min最小值max最大值median中位數(shù)var方差std標準差cov協(xié)方差sem標準誤差mode眾數(shù)skew樣本偏度kurt樣本峰度quantile四分位數(shù)count非空值數(shù)目mad平均絕對離差任務(wù)實操——成績統(tǒng)計分析4任務(wù)實操成績統(tǒng)計分析本任務(wù)主要練習對學生成績的統(tǒng)計分析?!纠?1.5】假設(shè)班級有三個學生A(男),B(女),C(女),每個學生的語文、數(shù)學、英語成績記錄在數(shù)組中:[[89,85,92],[92,81,76],[90,80,83]],數(shù)組的每一行表示一個學生的三科成績,下面請對該成績進行簡單的數(shù)據(jù)分析。要求:(1)創(chuàng)建一個DataFrame記錄學生成績信息,包含5列,分別為姓名,性別,各科成績;(2)計算語文、數(shù)學和英語成績的平均分、最大值和最小值;(3)計算三個人的成績總分,并打印最高的總分數(shù);(4)計算每個學生的平均成績,同時找出每個學生成績的最高分和最低分。任務(wù)實操——成績統(tǒng)計分析2具體編程示例:scores=np.array([[89,85,92],[92,81,76],[90,80,83]])#成績數(shù)據(jù)#創(chuàng)建DataFrame記錄學生成績信息df_grades=pd.DataFrame({'姓名':['A','B','C'],'性別':=['男','女','女'],
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年江蘇海事職業(yè)技術(shù)學院單招職業(yè)適應(yīng)性測試題庫及參考答案詳解1套
- 2026年南京城市職業(yè)學院單招綜合素質(zhì)考試題庫參考答案詳解
- 2026年寧波衛(wèi)生職業(yè)技術(shù)學院單招職業(yè)適應(yīng)性考試題庫及答案詳解一套
- 2026年六盤水職業(yè)技術(shù)學院單招職業(yè)傾向性考試題庫及參考答案詳解一套
- 2026年廣西金融職業(yè)技術(shù)學院單招職業(yè)技能考試題庫帶答案詳解
- 2026年衡陽幼兒師范高等??茖W校單招職業(yè)適應(yīng)性測試題庫及參考答案詳解一套
- 2026年上海中僑職業(yè)技術(shù)大學單招職業(yè)技能考試題庫及參考答案詳解
- 2026年湖南外貿(mào)職業(yè)學院單招職業(yè)技能考試題庫及參考答案詳解
- 2026年新疆克拉瑪依市單招職業(yè)適應(yīng)性測試題庫含答案詳解
- 2026年無錫南洋職業(yè)技術(shù)學院單招職業(yè)適應(yīng)性測試題庫及答案詳解1套
- 2025年仲鎢酸銨行業(yè)分析報告及未來發(fā)展趨勢預(yù)測
- 螺栓強度校核課件
- 香薰蠟燭基礎(chǔ)知識培訓(xùn)
- 混凝土及外加劑知識培訓(xùn)課件
- 1-視頻交換矩陣
- 收養(yǎng)政策知識培訓(xùn)內(nèi)容課件
- 石化企業(yè)應(yīng)急預(yù)案
- 船舶航次計劃總結(jié)
- 2025-2026學年統(tǒng)編版一年級上冊道德與法治教學計劃
- 《機器學習》課件-第6章 強化學習
- 早產(chǎn)合并新生兒呼吸窘迫綜合征護理查房
評論
0/150
提交評論