




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1.6習(xí)題請簡述大數(shù)據(jù)的概念。答:數(shù)據(jù)是指那些無法在一定時(shí)間范圍內(nèi)用常規(guī)軟件工具進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合。它具有海量、高增長和多樣化的特點(diǎn),需要采用新的處理模式才能充分發(fā)揮其決策支持、洞察發(fā)現(xiàn)和流程優(yōu)化的潛力。值得注意的是,大數(shù)據(jù)并非單一技術(shù),而是一個(gè)概念和技術(shù)圈,涵蓋了數(shù)據(jù)采集、存儲、處理、分析和應(yīng)用等各個(gè)環(huán)節(jié)。大數(shù)據(jù)的五個(gè)“V”分別指的是什么?答:數(shù)據(jù)量大(Volume)、種類繁多(Variety)、生成快速(Velocity)、來源真實(shí)(Veracity)和數(shù)據(jù)價(jià)值(Value)。請簡述在大數(shù)據(jù)分析過程中,如何進(jìn)行數(shù)據(jù)預(yù)處理?答:預(yù)處理主要包括數(shù)據(jù)清洗(DataCleaning,DC)、數(shù)據(jù)集成(DataIntegration,DI)、數(shù)據(jù)轉(zhuǎn)換(DataTransformation,DT)和數(shù)據(jù)規(guī)約(DataReduction,DR)四個(gè)階段。數(shù)據(jù)清洗可去除噪聲數(shù)據(jù)、合并或清除重復(fù)數(shù)據(jù)、糾正或刪除錯(cuò)誤數(shù)據(jù)、處理缺失數(shù)據(jù),并解決數(shù)據(jù)不一致性問題。數(shù)據(jù)集成則整合來自不同數(shù)據(jù)源的數(shù)據(jù),存儲于統(tǒng)一數(shù)據(jù)庫或數(shù)據(jù)倉庫中,涉及模式集成、冗余數(shù)據(jù)處理等。數(shù)據(jù)轉(zhuǎn)換規(guī)范化數(shù)據(jù),提高可理解性,便于分析。數(shù)據(jù)規(guī)約通過數(shù)據(jù)采樣、屬性選擇等方式,在不損失準(zhǔn)確性的前提下縮小數(shù)據(jù)規(guī)模,提高效率,降低存儲成本。方法包括數(shù)據(jù)立方體聚集、維規(guī)約、數(shù)據(jù)壓縮、數(shù)值規(guī)約、離散化和概念分層。4.在哪些領(lǐng)域可以進(jìn)行大數(shù)據(jù)分析?答:(1)商業(yè)與市場營銷(2)醫(yī)療與健康(3)金融與保險(xiǎn)(4)社交網(wǎng)絡(luò)與媒體2.8習(xí)題一、單選題1.以下哪個(gè)是Python中正確的變量命名?()A.1strB.$aC._s1D.if答案:C2.以下哪個(gè)是Python中正確的整數(shù)定義?()A.i=2.3B.i="int"C.i=0x14D.i=7.8E10答案:C3.運(yùn)行表達(dá)式5%3**2**3,得到的結(jié)果為?()A.5B.256C.64D.8答案:A解析:`3**2**3`先計(jì)算為`3**8`,結(jié)果為6561,于是`5%6561`的結(jié)果是5。4.運(yùn)行表達(dá)式(5%3)**2**3,得到的結(jié)果為?()A.5B.256C.64D.8答案:B解析:5%3結(jié)果為2,2**2**3的結(jié)果是2**8,等于256。5.在Python中,空值用什么表示?()A.NullB.nullC.NoneD.none答案:C解析:Python中的空值使用None表示。6.以下哪一個(gè)是正確的Python列表定義?()A.lst=['A','B',100]B.lst=('A',5,'C')C.lst={5,'B','C'}D.varlst=['A','B','C']答案:A解析:選項(xiàng)A是合法的列表定義,其他選項(xiàng)不是列表。7.以下哪個(gè)是正確的Python字典定義?()A.d=["name":"xiaoming","age":19]B.d={"name":"xiaoming","age":19}C.d={"name","xiaoming","age",19}D.d={"name"="xiaoming","age"=19}答案:B解析:字典的正確格式是以冒號分隔鍵值對,且使用花括號包圍。8.運(yùn)行以下命令,運(yùn)行結(jié)果為?()x=3.1415926round(x,2)A.3B.3.1C.3.14D.3.1415答案:C解析:`round`函數(shù)將小數(shù)四舍五入到指定的小數(shù)位數(shù)。9.以下哪個(gè)類型不可以進(jìn)行切片操作?()A.tupleB.strC.listD.dict答案:D解析:字典不支持切片操作,其他類型支持。10.假設(shè)有字符串`s='HappyNewYear'`,則`s[-2:-12:-3]`的結(jié)果是()。A.'aYH'B.'pNw'C.'aNp'D.'pwe'答案:C解析:負(fù)索引從后往前取,步長為-3。11.列表lst=[1,2.56,'python',('a','b'),[1,2,3]]`,則lst[-2]的結(jié)果是()。A.2.56B.'python'C.('a','b')D.[1,2,3]答案:C解析:-2索引指向倒數(shù)第二個(gè)元素,即元組('a','b')。12.下列屬于Python中的有序序列且可變的內(nèi)置數(shù)據(jù)對象類型的是()。A.字典B.集合C.數(shù)組D.列表答案:D解析:列表是可變的有序序列,其他選項(xiàng)不是。13.訪問字符串的部分字符的操作稱為()。A.切片B.索引C.賦值D.合并答案:A解析:切片是訪問字符串部分字符的方式。14.lst.reverse()和lst[::-1]的主要區(qū)別是()。A.兩者都將列表的所有元素反轉(zhuǎn)排列,沒有區(qū)別。B.兩者都不會改變列表lst原來內(nèi)容。C.lst.reverse()不會改變列表lst的內(nèi)容,而lst[::-1]會改變原列表lst的內(nèi)容。D.lst.reverse()會改變lst的內(nèi)容,而lst[::-1]產(chǎn)生一個(gè)新的列表,不會改變列表lst原來的內(nèi)容。答案:D解析:reverse()方法會直接修改原列表,而lst[::-1]生成一個(gè)新的反轉(zhuǎn)列表。15.下列不能創(chuàng)建字典的語句是()。A.dict1={}B.dict2={3:5}C.dict3=dict([(2,5),(3,4)])D.dict3=dict([(2,5),[3,4]])答案:D解析:dict()必須接收一個(gè)可迭代的包含二元組的對象,而[3,4]不是。16.對于字典dct={'A':10,'B':20,'C':30,'D':40},len(dct)結(jié)果是()。A.4B.8C.10D.12答案:A解析:字典中有4個(gè)鍵值對。17.以下不能創(chuàng)建字典的語句是()。A.dct1={}B.dct2={3:5}C.dct3={(1,2,3):'user'}D.dct4={[1,2,3]:'user'}答案:D解析:字典的鍵必須是不可變類型,而列表是可變的。18.以下屬于不合法的表達(dá)式的是()。A.xin[1,2,3,4,5]B.'abc'>123C.x-6>5D.e>5and4==f答案:B解析:無法直接比較字符串和整數(shù)。將數(shù)學(xué)式2<x<10表示成等價(jià)的Python表達(dá)式為:()。A.2<x<10B.2<xandx<10C.2<x&&x<10D.x>2orx<10答案:B解析:Python中需要使用`and`連接兩個(gè)條件。20.以下if語句語法正確的是()。A.ifa>0:x=20else:x=200B.ifa>0:x=20else:x=200C.ifa>0:x=20else:x=200D.ifa>0:x=20else:x=200答案:D解析:D的格式符合Python的縮進(jìn)規(guī)則。21.在Python中,實(shí)現(xiàn)多分支選擇結(jié)構(gòu)較好的方法是()。A.ifB.if-elseC.if-elif-elseD.if多層嵌套答案:C解析:`if-elif-else`結(jié)構(gòu)提供了清晰的多分支選擇。22.設(shè)有程序段:k=10whilek:k=k-1print(k)則下面描述中正確的是()。A.while循環(huán)執(zhí)行了10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句只執(zhí)行了一次答案:A解析:`k`從10開始,循環(huán)體會執(zhí)行10次。---23.以下for語句中,能完成1~10的累加功能的是()。A.foriinrange(10,0):sum+=iB.foriinrange(1,11):sum+=iC.foriinrange(10,-1):sum+=iD.foriinrange(10,9,8,7,6,5,4,3,2,1):sum+=i答案:B解析:`range(1,11)`生成1到10的數(shù)字。24.關(guān)于while循環(huán)和for循環(huán)的區(qū)別,下列敘述正確的是()。A.while語句的循環(huán)體至少無條件執(zhí)行一次,for語句的循環(huán)體有可能一次都不執(zhí)行B.while語句只能用于循環(huán)次數(shù)未知的循環(huán),for語句只能用于循環(huán)次數(shù)已知的循環(huán)C.在很多情況下,while語句和for語句可以等價(jià)使用D.while語句只能用于可迭代變量,for語句可以用于任意表達(dá)式表示條件答案:C解析:在許多情況下,`while`和`for`可以互換使用。25.下列說法中正確的是:()。A.break用在for語句中,而continue用在while語句中B.break用在while語句中,而continue用在for語句中C.continue能結(jié)束循環(huán),而break只能結(jié)束本次循環(huán)D.break能結(jié)束循環(huán),而continue只能結(jié)束本次循環(huán)答案:D解析:`break`結(jié)束整個(gè)循環(huán),`continue`結(jié)束當(dāng)前循環(huán)的本次迭代。26.下列Python循環(huán)體執(zhí)行的次數(shù)與其他不同的是()。A.i=0whilei<=10:print(i)i+=1B.i=10whilei>0:print(i)i-=1C.foriinrange(10):print(i)D.foriinrange(10,0,-1):print(i)答案:A解析:A的循環(huán)體將會執(zhí)行11次,而其他選項(xiàng)都是執(zhí)行10次。27.以下說法錯(cuò)誤的是:()。A.pass不做任何事情,一般用做占位語句B.range()函數(shù)可創(chuàng)建一個(gè)整數(shù)列表,一般用在for循環(huán)中。list(range(0,10,2))結(jié)果為:[0,2,4,6,8,10]C.zip()函數(shù)用于將可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表。a=[1,2,3],b=['a','b','c'],list(zip(a,b))結(jié)果為:[(1,'a'),(2,'b'),(3,'c')]D.enumerate()函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對象(如列表、元組或字符串)組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在for循環(huán)當(dāng)中。seasons=['Spring','Summer','Fall','Winter'],list(enumerate(seasons))結(jié)果為:[(0,'Spring'),(1,'Summer'),(2,'Fall'),(3,'Winter')]答案:B解析:`list(range(0,10,2))`的結(jié)果為`[0,2,4,6,8]`,而不是`[0,2,4,6,8,10]`。28.以下哪個(gè)關(guān)鍵字可以用來進(jìn)行占位操作()。A.breakB.continueC.whileD.pass答案:D解析:`pass`是一個(gè)占位符,不執(zhí)行任何操作。29.下列語句不符合語法要求的是:()forvarin_____:print(var)A.range(0,10)B.'hello'C.(1,2,3)D.{1,2,3,4,5}答案:D解析:D中的集合不能用于for循環(huán)的語法。30.下列選項(xiàng)中不屬于函數(shù)優(yōu)點(diǎn)的是:()A.減少代碼重復(fù)B.使程序模塊化C.使程序便于閱讀D.便于發(fā)揮程序員的創(chuàng)造力答案:D解析:雖然函數(shù)可以提升程序的可讀性和模塊化,但它并不直接影響創(chuàng)造力。31.關(guān)于函數(shù)的說法正確的是()A.函數(shù)定義時(shí)必須有形參B.函數(shù)中定義的變量只有該函數(shù)體中起作用C.函數(shù)定義時(shí)必須帶return語句D.實(shí)參與形參的個(gè)數(shù)可以不同,類型可以任意答案:B解析:函數(shù)內(nèi)定義的變量是局部變量,只在函數(shù)內(nèi)部有效。31以下關(guān)于函數(shù)說法正確的是()A.函數(shù)的實(shí)際參數(shù)和形式參數(shù)必須同名B.函數(shù)的形式參數(shù)可以是變量也可以是常量C.函數(shù)的實(shí)際參數(shù)不可以是表達(dá)式D.函數(shù)的實(shí)際參數(shù)可以是其他函數(shù)的調(diào)用答案:D解析:實(shí)際參數(shù)可以是函數(shù)調(diào)用的結(jié)果。32.以下代碼段運(yùn)行的結(jié)果是()deffoo():return1,2,3a=foo()x,y,z=foo()print('a=',a)print('x=',x)print('y=',y)print('z=',z)A.a=1x=2y=3z=3B.a=(1,2,3)x=1,2,3y=1,2,3z=3C.a=(1,2,3)x=1y=2z=3D.a=(1,2,3)x=(1,2,3)y=(1,2,3)z=(1,2,3)答案:C解析:`foo()`返回的元組被unpack到`x`,`y`,和`z`中。33.以下程序的結(jié)果是()defbar(x,*args,**kwargs):print(x)print(args)print(kwargs)bar(1,2,3,4,a='python',b='java')A.(1,2,3,4)(1,2,3,4){'a':'python','b':'java'}B.1(2,3,4)['python','java']C.1(2,3,4){'python','java'}D.1(2,3,4){'a':'python','b':'java'}答案:D解析:`bar(1,2,3,4,a='python',b='java')`中,`x`接收`1`,`*args`接收`(2,3,4)`,`**kwargs`接收`{'a':'python','b':'java'}`。34.以下程序的結(jié)果是()defmy_fun():print('before')returnprint('after')my_fun()A.beforeafterB.beforeC.afterD.afterbefore答案:B解析:`return`語句使得函數(shù)在打印`before`后立即返回,所以`after`不會被執(zhí)行。35.以下程序的結(jié)果是()defconverts(s):lst=[i.upper()ifi==i.lower()elsei.lower()foriins]return''.join(lst)print(converts('Hello'))A.'Hello'B.'hello'C.'HELLO'D.'hELLO'答案:D解析:`converts`函數(shù)將字符串中的每個(gè)字符轉(zhuǎn)換為相反的大小寫,`'H'`轉(zhuǎn)為小寫,`'e'`轉(zhuǎn)為大寫,`'l'`不變,最終結(jié)果為`'hELLO'`。二、簡答題1.列舉Python中的一些關(guān)鍵字,并解釋其作用。答:關(guān)鍵字是被編程語言保留用于特定目的的單詞或標(biāo)識符,不能用作變量名或函數(shù)名。具體見表2-1。表2-1關(guān)鍵字及其用途表序號關(guān)鍵字用途1False布爾值,表示邏輯假2True布爾值,表示邏輯真3None表示空值或空對象4and邏輯運(yùn)算符,與5as用于別名,例如導(dǎo)入模塊時(shí)6assert用于調(diào)試目的,判斷表達(dá)式是否為真7async定義異步函數(shù)8await在異步函數(shù)內(nèi)部暫停執(zhí)行9break用于循環(huán)中,提前跳出循環(huán)10class定義類11continue用于循環(huán)中,跳過當(dāng)前循環(huán)的剩余代碼,進(jìn)入下一次循環(huán)12def定義函數(shù)13del刪除對象或?qū)ο笾械脑?4elif在if語句中使用,否則如果15else在if語句中使用,否則16except用于異常處理17finally無論是否發(fā)生異常,都會執(zhí)行的代碼塊18for用于循環(huán),遍歷可迭代對象19from用于導(dǎo)入模塊中的特定部分20global在函數(shù)內(nèi)部聲明全局變量21if條件語句,如果22import導(dǎo)入模塊23in用于檢查某個(gè)元素是否存在于集合中24is用于比較兩個(gè)對象是否相同25lambda創(chuàng)建匿名函數(shù)26nonlocal在函數(shù)或其他作用域中使用外層(非全局)變量27not邏輯運(yùn)算符,非28or邏輯運(yùn)算符,或29pass空語句,占位符30raise拋出異常31return從函數(shù)中返回值32try異常處理中的嘗試代碼塊33while循環(huán),當(dāng)條件為真時(shí)執(zhí)行代碼塊34with用于管理資源,例如文件操作時(shí)的上下文管理器35yield生成器函數(shù)中,產(chǎn)生值定義一個(gè)合法的Python標(biāo)識符,說明標(biāo)識符的命名規(guī)則和約定。答:標(biāo)識符是由程序員定義的名稱,用于標(biāo)識變量、函數(shù)、類等實(shí)體。標(biāo)識符需要滿足以下規(guī)則:1)標(biāo)識符可以由字母(大小寫均可)、數(shù)字和下劃線組成,但不能以數(shù)字開頭。2)標(biāo)識符對大小寫敏感,大寫字母和小寫字母被視為不同的標(biāo)識符。3)標(biāo)識符不能是關(guān)鍵字。3.什么是常量?Python中如何定義常量?答:常量是指在程序運(yùn)行過程中不會改變的量。一般分為字面常量和符號常量。具體定義見教材中例2-2?!纠?-2】常量示例。程序代碼:>>>PI=3.1415#圓周率>>>E=2.71828#自然對數(shù)的底>>>MAX_VALUE=100#最大值>>>MIN_VALUE=0#最小值上述代碼定義了四個(gè)符號常量,圓周率常量PI、自然對數(shù)的底E、最大值MAX_VALUE、最小值MIN_VALUE。4.定義一個(gè)變量,并演示如何給變量賦值和修改變量的值。答:具體見教材中例2-3和例2-4?!纠?-3】變量賦值示例。>>>x=100#整數(shù)>>>y=3.14#浮點(diǎn)數(shù)>>>z="Hello"#字符串結(jié)果分析:第一個(gè)賦值語句將整數(shù)100賦值給變量x,也就是說,此后x就代表整數(shù)100,使用x即使用100。同理,第二個(gè)賦值語句將浮點(diǎn)數(shù)3.14賦值給變量y,使用變量y就是使用3.14,使用z就是使用字符串"Hello"。變量的值不是固定的,可以隨時(shí)被修改,只要重新賦值即可。另外,也可以將不同類型的數(shù)據(jù)賦值給同一變量?!纠?-4】變量多次賦值示例。程序代碼:>>>n=20#將20賦值給變量n>>>n=200#將200賦值給變量n>>>n="xyz"#將"xyz"賦值給變量n注意:變量的值一但被修改,之前的值就被覆蓋了,不存在了。換句話說,變量只能容納一個(gè)值。上述代碼n最終的值為字符串"xyz"。5.列舉Python中常見的基本數(shù)據(jù)類型,分別給出一個(gè)例子。答:具體見教材2.1.3。1)整數(shù)(int):用于表示整數(shù),可以是正數(shù)、負(fù)數(shù)或零,例如:-5、0、100。2)浮點(diǎn)數(shù)(float):用于表示帶有小數(shù)點(diǎn)的數(shù)值,例如:3.14、-0.001、2.0,也可以是科學(xué)技術(shù)法表示形式3.5e3或3.5E3。3)字符串(str):用于表示文本數(shù)據(jù),可以使用單引號或雙引號括起來,例如:"Hello,World!"、'Python'。4)布爾值(bool):用于表示邏輯值,只有兩個(gè)取值:True和False。用于條件判斷和邏輯運(yùn)算。5)NoneType(None):表示空值或缺失值,常用于初始化變量或作為函數(shù)的返回值。6.Python中的運(yùn)算符有哪些?并給出優(yōu)先級順序。答:具體見教材中表2-2和表2-3。表2-2運(yùn)算符及含義運(yùn)算符的類別運(yùn)算符含義算術(shù)運(yùn)算符+加法-減法*乘法/除法//整除%取模(取余數(shù))**冪運(yùn)算比較運(yùn)算符==等于!=不等于>大于<小于<=小于等于>=大于等于邏輯運(yùn)算符and邏輯與or邏輯或not邏輯非賦值運(yùn)算符=簡單賦值+=加法賦值-=減法賦值*=乘法賦值/=除法賦值//=整除賦值%=取模賦值**=冪賦值位運(yùn)算符(二進(jìn)制)&按位與|按位或^按位異或<<左移>>右移~按位取反成員運(yùn)算符in存在notin不存在身份運(yùn)算符is兩個(gè)對象指向同一內(nèi)存地址isnot兩個(gè)對象不指向同一內(nèi)存地址表2-3運(yùn)算符的優(yōu)先級序號運(yùn)算符結(jié)合性1括號():最高優(yōu)先級,可以改變運(yùn)算順序2冪運(yùn)算符(**)從右到左3取正(+)、取負(fù)(-)、位取反運(yùn)算符(~)從右到左4乘法(*)、除法(/)、取模(%)、整除(//)5加法(+)、減法(-)6左移(<<)、右移(>>)7位與(&)8位異或(^)9位或(|)10比較運(yùn)算符:==、!=、>、<、>=、<=11成員運(yùn)算符(in,notin)、身份運(yùn)算符(is,isnot)12邏輯非運(yùn)算符:not從右到左13邏輯與運(yùn)算符(and)、邏輯或運(yùn)算符(or)14賦值運(yùn)算符:=、+=、-=、*=、/=、//=、%=在計(jì)算表達(dá)式的值時(shí),Python會根據(jù)運(yùn)算符的優(yōu)先級(見表2-3)和結(jié)合性(表2-3沒有給出結(jié)合性的運(yùn)算符默認(rèn)為從左到右),依次計(jì)算各個(gè)運(yùn)算符的操作。如果有多個(gè)同級別(表2-3中位于同一行的運(yùn)算符屬于同一優(yōu)先級)的運(yùn)算符,Python會根據(jù)結(jié)合性(從左到右或從右到左)來確定計(jì)算順序。在復(fù)雜的表達(dá)式中,可以使用括號來明確指定運(yùn)算的順序,以避免混淆和錯(cuò)誤結(jié)果。三、編程題1.請編寫一個(gè)程序,實(shí)現(xiàn)從用戶輸入的兩個(gè)整數(shù)中計(jì)算它們的和并輸出結(jié)果。答:代碼如下:#獲取用戶輸入的兩個(gè)整數(shù)num1=int(input("請輸入第一個(gè)整數(shù):"))num2=int(input("請輸入第二個(gè)整數(shù):"))#計(jì)算和sum_result=num1+num2#輸出結(jié)果print("兩個(gè)整數(shù)的和是:",sum_result)2.請編寫一個(gè)程序,根據(jù)用戶輸入的年齡判斷其是否滿足投票條件。如果用戶的年齡大于等于18歲,則輸出“您已經(jīng)達(dá)到法定投票年齡,可以參與投票!”;如果用戶的年齡小于18歲,則輸出“對不起,您未達(dá)到法定投票年齡,不能參與投票?!薄?獲取用戶輸入的年齡age=int(input("請輸入您的年齡:"))#判斷投票資格ifage>=18:print("您已經(jīng)達(dá)到法定投票年齡,可以參與投票!")else:print("對不起,您未達(dá)到法定投票年齡,不能參與投票。")3.編寫一個(gè)程序,根據(jù)用戶輸入的數(shù)字判斷其正負(fù)零狀態(tài),并輸出相應(yīng)的信息。#獲取用戶輸入的數(shù)字number=float(input("請輸入一個(gè)數(shù)字:"))#判斷數(shù)字的正負(fù)零狀態(tài)ifnumber>0:print("您輸入的數(shù)字是正數(shù)。")elifnumber<0:print("您輸入的數(shù)字是負(fù)數(shù)。")else:print("您輸入的數(shù)字是零。")4.請編寫一個(gè)程序,創(chuàng)建一個(gè)包含整數(shù)的列表,然后使用for循環(huán)遍歷該列表中的元素,并輸出每個(gè)整數(shù)。#創(chuàng)建一個(gè)包含整數(shù)的列表integer_list=[1,2,3,4,5,6,7,8,9,10]#使用for循環(huán)遍歷列表中的元素fornumberininteger_list:print(number)5.請編寫一個(gè)程序,使用while循環(huán)計(jì)算并輸出1到100的整數(shù)。#初始化計(jì)數(shù)器number=1#使用while循環(huán)輸出1到100的整數(shù)whilenumber<=100:print(number)number+=1#計(jì)數(shù)器加1print(number)6.請編寫一個(gè)程序,使用for循環(huán)遍歷一個(gè)整數(shù)列表,如果遇到負(fù)數(shù),則輸出該負(fù)數(shù)并結(jié)束循環(huán);如果遇到正數(shù),則輸出該正數(shù)并繼續(xù)下一次循環(huán)。#創(chuàng)建一個(gè)包含整數(shù)的列表integer_list=[3,5,-2,7,-1,4]#使用for循環(huán)遍歷列表中的元素fornumberininteger_list:ifnumber<0:print("遇到負(fù)數(shù):",number)break#結(jié)束循環(huán)else:print("遇到正數(shù):",number)7.請編寫一個(gè)程序,使用for循環(huán)遍歷一個(gè)整數(shù)列表,如果遇到負(fù)數(shù),則跳過該負(fù)數(shù)并繼續(xù)下一次循環(huán);如果遇到正數(shù),則輸出該正數(shù)。#創(chuàng)建一個(gè)包含整數(shù)的列表integer_list=[3,-1,5,-2,7,-3,4]#使用for循環(huán)遍歷列表中的元素fornumberininteger_list:ifnumber<0:continue#跳過負(fù)數(shù)print("遇到正數(shù):",number)#輸出正數(shù)8.請編寫一個(gè)程序,創(chuàng)建一個(gè)包含整數(shù)的列表,然后對該列表進(jìn)行以下操作:(1)輸出列表的長度。(2)訪問列表中的第三個(gè)元素,并輸出。(3)使用切片操作獲取列表中的第二至第四個(gè)元素,并輸出。(4)向列表末尾添加一個(gè)新的整數(shù)。(5)在列表的指定位置(例如第二個(gè)位置)插入一個(gè)新的整數(shù)。(6)移除列表中的一個(gè)元素(例如移除第一個(gè)出現(xiàn)的指定元素)。(7)彈出列表中的一個(gè)元素(例如彈出指定位置的元素)。(8)查找列表中指定元素的索引,并輸出。(9)判斷列表中是否存在某個(gè)元素,并輸出判斷結(jié)果。(10)統(tǒng)計(jì)列表中某個(gè)元素出現(xiàn)的次數(shù),并輸出。(11)對列表進(jìn)行排序,并輸出排序后的列表。#創(chuàng)建一個(gè)包含整數(shù)的列表integer_list=[10,20,30,40,50,30]#(1)輸出列表的長度print("列表的長度:",len(integer_list))#(2)訪問列表中的第三個(gè)元素,并輸出print("第三個(gè)元素:",integer_list[2])#(3)使用切片操作獲取列表中的第二至第四個(gè)元素,并輸出print("第二至第四個(gè)元素:",integer_list[1:4])#(4)向列表末尾添加一個(gè)新的整數(shù)integer_list.append(60)print("添加新整數(shù)后的列表:",integer_list)#(5)在列表的指定位置(例如第二個(gè)位置)插入一個(gè)新的整數(shù)integer_list.insert(1,15)#在第二個(gè)位置插入15print("插入新整數(shù)后的列表:",integer_list)#(6)移除列表中的一個(gè)元素(例如移除第一個(gè)出現(xiàn)的指定元素)integer_list.remove(30)#移除第一個(gè)出現(xiàn)的30print("移除元素后的列表:",integer_list)#(7)彈出列表中的一個(gè)元素(例如彈出指定位置的元素)popped_element=integer_list.pop(2)#彈出第三個(gè)元素print("彈出的元素:",popped_element)print("彈出元素后的列表:",integer_list)#(8)查找列表中指定元素的索引,并輸出element_index=integer_list.index(40)#查找元素40的索引print("元素40的索引:",element_index)#(9)判斷列表中是否存在某個(gè)元素,并輸出判斷結(jié)果element_exists=20ininteger_list#判斷元素20是否在列表中print("元素20是否存在于列表中:",element_exists)#(10)統(tǒng)計(jì)列表中某個(gè)元素出現(xiàn)的次數(shù),并輸出count_of_30=integer_list.count(30)#統(tǒng)計(jì)元素30的出現(xiàn)次數(shù)print("元素30出現(xiàn)的次數(shù):",count_of_30)#(11)對列表進(jìn)行排序,并輸出排序后的列表integer_list.sort()print("排序后的列表:",integer_list)9.請編寫一個(gè)程序,創(chuàng)建一個(gè)包含整數(shù)的元組,然后對該元組進(jìn)行以下操作:(1)訪問元組中的第三個(gè)元素,并輸出。(2)使用切片操作獲取元組中的第二至第四個(gè)元素,并輸出。(3)查找元組中指定元素的索引,并輸出。(4)統(tǒng)計(jì)元組中某個(gè)元素出現(xiàn)的次數(shù),并輸出。#創(chuàng)建一個(gè)包含整數(shù)的元組integer_tuple=(10,20,30,40,50)#(1)訪問元組中的第三個(gè)元素,并輸出third_element=integer_tuple[2]print("元組中的第三個(gè)元素:",third_element)#(2)使用切片操作獲取元組中的第二至第四個(gè)元素,并輸出slice_elements=integer_tuple[1:4]print("元組中的第二至第四個(gè)元素:",slice_elements)#(3)查找元組中指定元素的索引,并輸出element_to_find=30ifelement_to_findininteger_tuple:element_index=integer_tuple.index(element_to_find)print(f"元素{element_to_find}的索引:",element_index)else:print(f"元素{element_to_find}不在元組中。")#(4)統(tǒng)計(jì)元組中某個(gè)元素出現(xiàn)的次數(shù),并輸出count_of_element=integer_tuple.count(element_to_find)print(f"元素{element_to_find}出現(xiàn)的次數(shù):",count_of_element)10.請編寫一個(gè)程序,創(chuàng)建一個(gè)包含學(xué)生信息的字典,然后對該字典進(jìn)行以下操作:(1)訪問字典中的指定鍵值對,并輸出。(2)修改字典中的某個(gè)鍵值對,并輸出修改后的結(jié)果。(3)添加新的鍵值對到字典中,并輸出更新后的字典。(4)刪除字典中的指定鍵值對,并輸出更新后的字典。(5)檢查字典中是否包含某個(gè)鍵,如果包含則輸出對應(yīng)的值,否則輸出提示信息。#創(chuàng)建一個(gè)包含學(xué)生信息的字典student_info={'name':'Alice','age':20,'major':'ComputerScience'}#(1)訪問字典中的指定鍵值對,并輸出print("學(xué)生姓名:",student_info['name'])print("學(xué)生年齡:",student_info['age'])#(2)修改字典中的某個(gè)鍵值對,并輸出修改后的結(jié)果student_info['age']=21#修改年齡print("修改后的學(xué)生信息:",student_info)#(3)添加新的鍵值對到字典中,并輸出更新后的字典student_info['grade']='A'#添加年級print("更新后的學(xué)生信息:",student_info)#(4)刪除字典中的指定鍵值對,并輸出更新后的字典delstudent_info['major']#刪除專業(yè)print("刪除后的學(xué)生信息:",student_info)#(5)檢查字典中是否包含某個(gè)鍵key_to_check='name'ifkey_to_checkinstudent_info:print(f"{key_to_check}的值是:",student_info[key_to_check])else:print(f"字典中不包含鍵:{key_to_check}")11.請編寫一個(gè)程序,創(chuàng)建兩個(gè)集合,并對它們進(jìn)行以下操作:(1)求并集并輸出結(jié)果。(2)求交集并輸出結(jié)果。(3)求差集(第一個(gè)集合減去第二個(gè)集合)并輸出結(jié)果。(4)向第一個(gè)集合添加一個(gè)新元素,并輸出更新后的集合。(5)從第一個(gè)集合移除一個(gè)指定元素,并輸出更新后的集合。#創(chuàng)建兩個(gè)集合set_a={1,2,3,4,5}set_b={4,5,6,7,8}#(1)求并集并輸出結(jié)果union_set=set_a.union(set_b)#或者使用set_a|set_bprint("并集:",union_set)#(2)求交集并輸出結(jié)果intersection_set=set_ersection(set_b)#或者使用set_a&set_bprint("交集:",intersection_set)#(3)求差集(第一個(gè)集合減去第二個(gè)集合)并輸出結(jié)果difference_set=set_a.difference(set_b)#或者使用set_a-set_bprint("差集(set_a-set_b):",difference_set)#(4)向第一個(gè)集合添加一個(gè)新元素,并輸出更新后的集合set_a.add(9)print("更新后的第一個(gè)集合(添加9):",set_a)#(5)從第一個(gè)集合移除一個(gè)指定元素,并輸出更新后的集合set_a.remove(3)#移除元素3print("更新后的第一個(gè)集合(移除3):",set_a)12.請編寫一個(gè)程序,定義一個(gè)函數(shù),接受兩個(gè)整數(shù)作為參數(shù),計(jì)算它們的乘積并返回結(jié)果。然后調(diào)用該函數(shù),傳入兩個(gè)整數(shù),計(jì)算它們的乘積并輸出結(jié)果。#定義一個(gè)函數(shù),接受兩個(gè)整數(shù)作為參數(shù)defmultiply(a,b):"""計(jì)算兩個(gè)整數(shù)的乘積并返回結(jié)果"""returna*b#調(diào)用函數(shù),傳入兩個(gè)整數(shù)num1=int(input("請輸入第一個(gè)整數(shù):"))num2=int(input("請輸入第二個(gè)整數(shù):"))result=multiply(num1,num2)#輸出結(jié)果print(f"{num1}和{num2}的乘積是:{result}")13.請編寫一個(gè)程序,定義一個(gè)函數(shù)is_prime,接受一個(gè)整數(shù)作為參數(shù),判斷該整數(shù)是否為素?cái)?shù)(質(zhì)數(shù)),如果是素?cái)?shù)則返回True,否則返回False。然后調(diào)用該函數(shù),傳入一個(gè)整數(shù),判斷該整數(shù)是否為素?cái)?shù),并輸出判斷結(jié)果。defis_prime(n):"""判斷一個(gè)整數(shù)是否為素?cái)?shù)"""ifn<=1:returnFalse#0和1不是素?cái)?shù)foriinrange(2,int(n**0.5)+1):ifn%i==0:returnFalse#如果能被其他數(shù)整除,則不是素?cái)?shù)returnTrue#否則是素?cái)?shù)#輸入一個(gè)整數(shù)num=int(input("請輸入一個(gè)整數(shù):"))#調(diào)用函數(shù)判斷該整數(shù)是否為素?cái)?shù),并輸出結(jié)果ifis_prime(num):print(f"{num}是素?cái)?shù)。")else:print(f"{num}不是素?cái)?shù)。")14.請編寫一個(gè)程序,使用全局變量count來記錄一個(gè)系統(tǒng)中某個(gè)操作的執(zhí)行次數(shù)。定義一個(gè)函數(shù)update_count,每調(diào)用一次該函數(shù),全局變量count的值加1。然后模擬多次執(zhí)行該操作,調(diào)用update_count函數(shù)來更新執(zhí)行次數(shù),最后輸出執(zhí)行次數(shù)的結(jié)果。#定義全局變量countcount=0defupdate_count():"""函數(shù)每調(diào)用一次,count加1"""globalcount#聲明使用全局變量count+=1#模擬多次執(zhí)行該操作for_inrange(10):#這里模擬執(zhí)行10次update_count()#輸出執(zhí)行次數(shù)的結(jié)果print("操作執(zhí)行的次數(shù):",count)15.請編寫一個(gè)程序,使用面向?qū)ο蠓椒▽?shí)現(xiàn)一個(gè)簡單的學(xué)生信息管理系統(tǒng)。每個(gè)學(xué)生對象應(yīng)包含姓名、年齡和班級等信息。程序應(yīng)具有以下功能:(1)添加多個(gè)學(xué)生對象,并設(shè)置他們的姓名、年齡和班級信息。(2)可以顯示每個(gè)學(xué)生的信息。(3)統(tǒng)計(jì)學(xué)生對象的總數(shù)量,并輸出結(jié)果。classStudent:"""學(xué)生類,用于表示學(xué)生信息"""#類變量,用于統(tǒng)計(jì)學(xué)生數(shù)量student_count=0def__init__(self,name,age,class_name):"""初始化學(xué)生對象"""=nameself.age=ageself.class_name=class_nameStudent.student_count+=1#每創(chuàng)建一個(gè)學(xué)生對象,數(shù)量加1defdisplay_info(self):"""顯示學(xué)生信息"""print(f"姓名:{},年齡:{self.age},班級:{self.class_name}")defmain():"""主函數(shù),用于管理學(xué)生信息"""students=[]#存儲學(xué)生對象的列表#添加學(xué)生信息whileTrue:name=input("請輸入學(xué)生姓名(輸入'exit'結(jié)束):")ifname.lower()=='exit':breakage=int(input("請輸入學(xué)生年齡:"))class_name=input("請輸入學(xué)生班級:")#創(chuàng)建學(xué)生對象并添加到列表中student=Student(name,age,class_name)students.append(student)#顯示學(xué)生信息print("\n學(xué)生信息如下:")forstudentinstudents:student.display_info()#輸出學(xué)生對象的總數(shù)量print(f"\n學(xué)生總數(shù)量:{Student.student_count}")#運(yùn)行主函數(shù)if__name__=="__main__":main()3.7習(xí)題1.簡述大數(shù)據(jù)預(yù)處理的基本流程和作用。答:大數(shù)據(jù)預(yù)處理(BigDataPreprocessing,BDP)是指在進(jìn)行數(shù)據(jù)挖掘處理之前,對采集到的海量數(shù)據(jù)進(jìn)行必要的數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)變換和數(shù)據(jù)規(guī)約等多項(xiàng)處理工作。通過這些步驟,可以改進(jìn)原始數(shù)據(jù)的質(zhì)量,使其符合數(shù)據(jù)挖掘算法的要求,以便進(jìn)行知識獲取和分析。2.簡述缺失值處理和噪聲過濾的方法。答:缺失值處理可概括為刪除法和插補(bǔ)法(或稱填充法)兩類方法。刪除法是對缺失值進(jìn)行處理的最原始的方法,它將存在缺失值的記錄刪除。插補(bǔ)法包括固定值插補(bǔ)、統(tǒng)計(jì)值插補(bǔ)、最鄰近值填充、插值法填充以及預(yù)測估計(jì)法:固定值插補(bǔ):預(yù)先確定的特定值(如0或-1)來填充缺失值。統(tǒng)計(jì)值插補(bǔ):根據(jù)數(shù)據(jù)的屬性,可以將數(shù)據(jù)分為定距型和非定距型。如果缺失值是定距型的,就可以使用該屬性存在值的平均值來插補(bǔ)缺失的值。如果缺失值是非定距型的,可以根據(jù)統(tǒng)計(jì)學(xué)中的眾數(shù)原理,使用該屬性的眾數(shù)(即出現(xiàn)頻率最高的值)來填補(bǔ)缺失的值。最近鄰填充:根據(jù)樣本之間的相似性,利用最近的鄰居樣本的值來填充缺失值。插值法填充:利用已知點(diǎn)建立合適的插值函數(shù)f(x),未知值由對應(yīng)點(diǎn)xi求出的函數(shù)值f(xi)近似代替。插值法包括線性插值法、多項(xiàng)式插值法(包括拉格朗日插值法、牛頓插值法)等。預(yù)測估計(jì)法利用變量之間的關(guān)系,將有缺失值的字段作為待預(yù)測的變量,使用其他同類別無缺失值的字段作為預(yù)測值,通過數(shù)據(jù)挖掘方法進(jìn)行預(yù)測,用推斷得到的該字段最大可能的取值進(jìn)行補(bǔ)充。噪聲過濾方法包括回歸法、均值平滑法、離群點(diǎn)分析和人機(jī)交互檢測法等。回歸法是一種常用的噪聲過濾方法,它通過擬合數(shù)據(jù)的回歸模型,識別并剔除與模型偏離較大的數(shù)據(jù)點(diǎn),從而減少噪聲對模型的影響?;貧w法特別適用于識別和處理線性關(guān)系的數(shù)據(jù)。(2)均值平滑法是通過計(jì)算數(shù)據(jù)點(diǎn)周圍鄰近數(shù)據(jù)的均值來平滑數(shù)據(jù),減少噪聲的影響。均值平滑法適用于時(shí)間序列數(shù)據(jù)的平滑處理,對于周期性的噪聲有一定效果。(3)離群點(diǎn)分析是通過聚類等方法來檢測離群點(diǎn),并將其刪除,從而實(shí)現(xiàn)去噪的方法。直觀上,落在簇集合之外的值被視為離群點(diǎn)。(4)人機(jī)交互檢測法是一種利用人與計(jì)算機(jī)交互檢查的方法,旨在幫助發(fā)現(xiàn)噪聲數(shù)據(jù)。該方法依賴于專業(yè)分析人員豐富的背景知識和實(shí)踐經(jīng)驗(yàn),他們可以進(jìn)行人工篩選或者制定規(guī)則集,然后由計(jì)算機(jī)自動處理,從而檢測出不符合業(yè)務(wù)邏輯的噪聲數(shù)據(jù)。3.簡述實(shí)體識別出現(xiàn)的問題以及解決方法。答:實(shí)體識別時(shí)可能會遇到以下情況:實(shí)體識別時(shí)可能會遇到以下情況:1)同名異義:在處理同名異義情況時(shí),可將同名屬性重命名為不同的名稱2)異名同義:在處理異名同義情況時(shí),建立屬性之間的對應(yīng)關(guān)系。將“OrderDate”和“PurchaseDate”建立映射關(guān)系,明確它們的含義相同。3)單位不統(tǒng)一:對于單位不統(tǒng)一的情況,可以進(jìn)行單位轉(zhuǎn)換或統(tǒng)一,例如將“l(fā)b”轉(zhuǎn)換為“kg”或反之,或者引入一個(gè)標(biāo)準(zhǔn)化的重量單位,確保所有數(shù)據(jù)在集成后采用統(tǒng)一的單位。4.什么是數(shù)據(jù)規(guī)約?屬性規(guī)約和數(shù)值規(guī)約各包括哪些方法?答:數(shù)據(jù)規(guī)約是基于挖掘分析需求和數(shù)據(jù)自身的特性,在原始數(shù)據(jù)上選擇和建立用戶感興趣的數(shù)據(jù)集合,通過刪除數(shù)據(jù)部分屬性、替換部分?jǐn)?shù)據(jù)表示形式等操作完成對數(shù)據(jù)集合中出現(xiàn)的偏差、重復(fù)、異常等數(shù)據(jù)的過濾工作,盡可能地保持原始數(shù)據(jù)的完整性,并最大程度地精簡數(shù)據(jù)量,在得到相同(或者類似相同)的分析結(jié)果前提下節(jié)省數(shù)據(jù)挖掘時(shí)間。屬性規(guī)約通過屬性合并創(chuàng)建新屬性,或者直接刪除不相關(guān)的屬性來減少數(shù)據(jù)維度,進(jìn)而提高數(shù)據(jù)分析挖掘的效率,降低計(jì)算成本。屬性規(guī)約的目標(biāo)是尋找最小的屬性子集,并確保新數(shù)據(jù)子集的概率分布盡可能接近原始數(shù)據(jù)集的概率分布。屬性規(guī)約常用方法如下:合并屬性2)逐步向前選擇3)逐步向后刪除4)決策樹歸納5)主成分分析數(shù)值規(guī)約通過選擇替代的、較小的數(shù)據(jù)來減少數(shù)據(jù)量,包括有參數(shù)方法和無參數(shù)方法兩類。有參數(shù)方法使用模型來評估數(shù)據(jù),只需存放模型參數(shù),而無需存放實(shí)際數(shù)據(jù),例如一元線性回歸、多元線性回歸和對數(shù)回歸。無參數(shù)方法需要存放實(shí)際數(shù)據(jù),例如直方圖、聚類和抽樣。1)有參數(shù)方法:簡單線性模型和對數(shù)線性模型可以用來近似給定的數(shù)據(jù)。2)無參數(shù)方法:直方圖、聚類和抽樣。5.假設(shè)有5名學(xué)生,對應(yīng)的數(shù)學(xué)成績和體育成績見表3-3。表3-3學(xué)生成績信息表學(xué)生ID數(shù)學(xué)成績體育成績18582706392947875655使用最小-最大規(guī)范化,將體育成績轉(zhuǎn)換到[0.0,1.0]區(qū)間。答:使用Z-score規(guī)范化方法將數(shù)學(xué)成績和體育成績轉(zhuǎn)換為均值為0,標(biāo)準(zhǔn)差為1的分布。答:編寫Python代碼實(shí)現(xiàn)上述規(guī)范化操作,并計(jì)算規(guī)范化后的數(shù)學(xué)成績和體育成績。答:importnumpyasnpimportpandasaspd#學(xué)生成績信息data={'學(xué)生ID':[1,2,3,4,5],'數(shù)學(xué)成績':[85,70,92,78,65],'體育成績':[8,6,9,7,5]}df=pd.DataFrame(data)#(1)最小-最大規(guī)范化min_value=df['體育成績'].min()max_value=df['體育成績'].max()df['體育成績_規(guī)范化']=(df['體育成績']-min_value)/(max_value-min_value)#(2)Z-score規(guī)范化df['數(shù)學(xué)成績_Z']=(df['數(shù)學(xué)成績']-df['數(shù)學(xué)成績'].mean())/df['數(shù)學(xué)成績'].std()df['體育成績_Z']=(df['體育成績']-df['體育成績'].mean())/df['體育成績'].std()#輸出結(jié)果print(df[['學(xué)生ID','數(shù)學(xué)成績','體育成績','體育成績_規(guī)范化','數(shù)學(xué)成績_Z','體育成績_Z']])5.簡述連續(xù)屬性離散化的方法。答:常用的離散化方法包括:1.等寬法(EqualWidthDiscretization)將連續(xù)屬性的取值范圍均勻劃分為若干個(gè)區(qū)間,每個(gè)區(qū)間的寬度相等。這種方法適用于數(shù)據(jù)的分布比較均勻的情況。2.等頻法(EqualFrequencyDiscretization)將連續(xù)屬性的取值按照頻率劃分為若干個(gè)區(qū)間,確保每個(gè)區(qū)間內(nèi)包含相似數(shù)量的數(shù)據(jù)點(diǎn)。這種方法適用于數(shù)據(jù)分布不均勻的情況。3.聚類法(Cluster-BasedDiscretization)使用聚類算法(如K-means)將連續(xù)屬性的值聚類成若干個(gè)簇,然后將每個(gè)簇作為一個(gè)離散化的類別。4.基于決策樹的離散化(DecisionTree-BasedDiscretization)使用決策樹算法如ID3等來自動確定最佳的離散化劃分點(diǎn),以最大化分類的信息增益。4.6習(xí)題單選題1.在以下關(guān)鍵字中,可以用于引入模塊的是()A、includeB、fromC、importD、continue答案:C2.關(guān)于導(dǎo)入模塊的方式,以下哪一種是錯(cuò)誤的()A、importmathB、frommathimportsqrtC、from*importsqrtD、frommathimport*答案:C3.下列哪個(gè)語句可以用來安裝numpy包()A、importnumpyB、installnumpyC、pipnumpyD、pipinstallnumpy答案:D4.下列不屬于數(shù)組屬性的是(
)A、ndimB、shapeC、sizeD、add答案:D5.生成一個(gè)范圍在0到1之間,服從均勻分布的10行5列的數(shù)組,以下哪個(gè)代碼是正確的?A、np.random.randn(10,5)B、np.random.random(10,5)C、np.random.rand(10,5)D、np.random.randint(10,5)答案:C6.在Numpy中創(chuàng)建全為0的矩陣使用的是()A、arangeB、zerosC、zeroD、ones答案:B7.已知c=np.arange(24).reshape(3,4,2),那么c[1]所得到的結(jié)果是()A、array([[12,13,14,15],
[16,17,18,19],
[20,21,22,23]])B、array([[16,
17],
[18,19],
[20,21],
[22,23]])C、array([[8,
9],
[10,11],
[12,13],
[14,15]])D、array([[12,13,14],
[15,16,17],
[18,19,20],
[21,22,23]])答案:C8..以下程序代碼,輸出的結(jié)果是()importnumpyasnpa=np.array([[1,2,3],[4,5,6],[7,8,9]])b=np.array([[0],[1],[2]])a+bA、無法正常運(yùn)行,報(bào)錯(cuò)B、array([[1,3,5],[4,6,8],[7,9,11]])C、array([[1,2,3],[5,6,7],[9,10,11]])D、array([[0,2,6],[0,5,12],[0,8,18]])答案:C9.以下程序代碼輸出的結(jié)果是()importnumpyasnparr=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])np.sum(arr,axis=0)A、78B、array([10,26,42])C、[15,18,21,24]D、array([15,18,21,24])答案:D10.關(guān)于Numpy中常用統(tǒng)計(jì)函數(shù)的功能描述,以下哪一項(xiàng)是不正確的()A、mean計(jì)算數(shù)組均值B、std計(jì)算數(shù)組標(biāo)準(zhǔn)差C、argmax返回?cái)?shù)組最大元素D、var計(jì)算數(shù)組方差答案:C11.下列代碼中用于繪制散點(diǎn)圖的是(
)A、plt.scatter(x,y)B、plt.legend('upperleft')C、plt.plot(x,y)D、plt.xlabel('散點(diǎn)圖')答案:A12.由一組數(shù)據(jù)的最大值、最小值、中位數(shù)和兩個(gè)四分位數(shù)這五個(gè)特征值繪制而成的圖形,稱為(
)A、條形圖B、莖葉圖C、直方圖D、箱線圖答案:D**13.為了描述身高與體重之間的關(guān)系,適合采用的圖形是(
)A、條形圖B、直方圖C、散點(diǎn)圖D、箱線圖**答案:C**14.對于大批量的數(shù)據(jù),最適合用來描述其分布的圖形是(
)A、線圖B、條形圖C、直方圖D、餅圖**答案:C**15.對于時(shí)間序列數(shù)據(jù),通常用來描述其變化趨勢的圖形是(
)A、條形圖B、直方圖C、箱線圖D、折線圖**答案:D**分析題1.假設(shè)某個(gè)班級的數(shù)學(xué)成績?nèi)缦拢?5,92,78,88,76,95,67,80,90,55,100,62,74,89,93。為了更好地了解學(xué)生的表現(xiàn)、確定成績分布、識別需要幫助的學(xué)生,并為未來的教學(xué)做出調(diào)整,教師需要對這些成績進(jìn)行以下分析:(1)計(jì)算班級的平均成績和中位數(shù):以了解班級整體的學(xué)術(shù)表現(xiàn)。(2)識別優(yōu)秀和不及格的學(xué)生:找出哪些學(xué)生的成績高于班級平均分(表現(xiàn)優(yōu)秀),以及哪些學(xué)生的成績低于及格線(需要幫助)。(3)對學(xué)生的成績進(jìn)行排序:將成績按升序和降序排列,以便進(jìn)行排名。(4)統(tǒng)計(jì)每個(gè)成績區(qū)間內(nèi)的學(xué)生人數(shù):例如,統(tǒng)計(jì)得分在90-100、80-89、70-79等區(qū)間的學(xué)生人數(shù),以便更好地了解成績分布情況。請根據(jù)上述要求利用numpy庫實(shí)現(xiàn)這組數(shù)據(jù)的簡單統(tǒng)計(jì)分析。答:importnumpyasnp#示例學(xué)生成績數(shù)據(jù)student_scores=np.array([85,92,78,88,76,95,67,80,90,55,100,62,74,89,93])#1.計(jì)算班級的平均成績和中位數(shù)average_score=np.mean(student_scores)median_score=np.median(student_scores)#2.找出優(yōu)秀和不及格的學(xué)生passing_score=60excellent_students=student_scores[student_scores>average_score]failing_students=student_scores[student_scores<passing_score]#3.按成績排序sorted_scores_asc=np.sort(student_scores)#升序sorted_scores_desc=np.sort(student_scores)[::-1]#降序#4.統(tǒng)計(jì)每個(gè)成績區(qū)間內(nèi)的學(xué)生人數(shù)score_ranges={'90-100':np.sum((student_scores>=90)&(student_scores<=100)),'80-89':np.sum((student_scores>=80)&(student_scores<90)),'70-79':np.sum((student_scores>=70)&(student_scores<80)),'60-69':np.sum((student_scores>=60)&(student_scores<70)),'0-59':np.sum(student_scores<60)}#輸出結(jié)果print(f"班級平均成績:{average_score:.2f}")print(f"班級中位數(shù)成績:{median_score:.2f}")print(f"優(yōu)秀學(xué)生成績:{excellent_students}")print(f"不及格學(xué)生成績:{failing_students}")print(f"成績升序排列:{sorted_scores_asc}")print(f"成績降序排列:{sorted_scores_desc}")print("每個(gè)成績區(qū)間內(nèi)的學(xué)生人數(shù):")forrange_label,countinscore_ranges.items():print(f"{range_label}:{count}人")運(yùn)行結(jié)果:班級平均成績:81.60班級中位數(shù)成績:85.00優(yōu)秀學(xué)生成績:[85928895901008993]不及格學(xué)生成績:[55]成績升序排列:[5562677476788085888990929395100]成績降序排列:[1009593929089888580787674676255]每個(gè)成績區(qū)間內(nèi)的學(xué)生人數(shù):90-100:5人80-89:4人70-79:3人60-69:2人0-59:1人2.matplotlib支持哪些圖表類型?答:散點(diǎn)圖、折線圖、柱狀圖、直方圖、箱線圖、餅圖。在matplotlib中,如何設(shè)置圖表的標(biāo)題、坐標(biāo)軸標(biāo)簽和網(wǎng)格線?答:利用plt.title()函數(shù)設(shè)置圖表的標(biāo)題,明確圖表所表示的內(nèi)容;利用plt.xlabel()和plt.ylabel()函數(shù)分別設(shè)置x軸和y軸的標(biāo)簽,提供坐標(biāo)軸的具體含義;利用plt.grid(True)函數(shù)可以啟用網(wǎng)格線,幫助用戶更容易地讀取圖表中的數(shù)據(jù)。通過這些設(shè)置,用戶可以創(chuàng)建出更具專業(yè)性和清晰度的可視化圖表。在matplotlib中,如何自定義圖表的顏色、線型和標(biāo)記樣式?答:利用color參數(shù)指定線的顏色,支持常見的顏色名稱(如'blue'、'red')或十六進(jìn)制顏色代碼(如'#FF5733')。利用linestyle參數(shù),可以設(shè)置線的樣式,例如使用'-'表示實(shí)線,'--'表示虛線或':'表示點(diǎn)線。利用marker參數(shù)允許用戶選擇標(biāo)記樣式,如'o'表示圓形標(biāo)記、's'表示方形標(biāo)記等。通過組合這些參數(shù),用戶可以創(chuàng)建出個(gè)性化且易于區(qū)分的圖表,幫助有效傳達(dá)數(shù)據(jù)的特征和趨勢。繪制一個(gè)折線圖,展示一組隨時(shí)間變化的溫度數(shù)據(jù)。假設(shè)時(shí)間點(diǎn)x=[1,2,3,4,5],溫度值y=[20,22,18,25,23]。答:importmatplotlib.pyplotaspltimportnumpyasnp#設(shè)置中文字體(根據(jù)需要選擇合適的字體)plt.rcParams['font.sans-serif']=['SimHei']#黑體plt.rcParams['axes.unicode_minus']=False#解決負(fù)號顯示問題#定義時(shí)間點(diǎn)和溫度值x=[1,2,3,4,5]#時(shí)間點(diǎn)y=[20,22,18,25,23]#溫度值#創(chuàng)建折線圖plt.figure(figsize=(10,6))#設(shè)置圖形大小plt.plot(x,y,color='blue',linestyle='-',marker='o',label='溫度變化')#繪制折線圖#添加標(biāo)題和坐標(biāo)軸標(biāo)簽plt.title('隨時(shí)間變化的溫度數(shù)據(jù)')plt.xlabel('時(shí)間點(diǎn)')plt.ylabel('溫度(°C)')#顯示網(wǎng)格線plt.grid(True)#添加圖例plt.legend()#顯示圖形plt.show()運(yùn)行結(jié)果如下:6.根據(jù)網(wǎng)址/下載中國人口歷年數(shù)據(jù),此數(shù)據(jù)包括人口(萬人)、出生率(‰)、增長率(‰)、老年(%)、兒童(%)、男性(%)、女性(%)、全國出生人口(萬人)、全國死亡人口(萬人)共9個(gè)屬性,利用Matplotlib繪圖來進(jìn)行相應(yīng)分析。(1)出生率和增長率趨勢分析:通過繪制出生率和增長率隨時(shí)間的變化趨勢圖,可以分析人口的生育和增長情況。(2)人口結(jié)構(gòu)分析:繪制餅圖來展示老年人口、兒童人口、男性人口和女性人口在總?cè)丝谥械谋壤瑥亩治鋈丝诮Y(jié)構(gòu)。(3)性別比例分析:通過繪制性別比例的餅圖或柱狀圖,可以分析男性和女性在總?cè)丝谥械谋壤闆r。(4)全國出生人口和死亡人口對比分析:繪制柱狀圖或折線圖來對比全國不同年份的出生人口和死亡人口數(shù)量,從中可以分析人口的增長趨勢和死亡率情況。下載的數(shù)據(jù)情況:時(shí)間人口(萬人)出生率(‰)增長率(‰)老年(%)兒童(%)男性(%)女性(%)全國出生人口(萬人)全國死亡人口(萬人)20241408286.77-0.9915.651.0648.94954109320231409676.39-1.4815.416.3651.148.9902111020221411756.77-0.614.8616.951.1548.85956104120211412607.520.3414.217.4751.1948.811062101420201411788.521.4513.517.9551.2448.761200997.6201914000510.413.3212.6916.7851.0948.911465998201813953810.863.7811.9916.8651.1348.871523993201713900812.645.5811.4816.851.1748.831723986201613827113.576.5310.8816.6451.248.81786977201513746211.994.9310.5716.5251.248.81655975201413678213.836.7110.1616.551.2348.771687977201313607213.035.99.716.451.2448.761640972201213540414.577.439.416.551.2548.751635966201113473513.251.2648.741604960201013409111.94.798.916.651.2748.731588948200913345011.954.878.518.551.4448.561615943200813280212.145.088.31951.4748.531608935200713212919.451.548.51594913200613144812.095.287.919.851.5248.481584892200513075612.45.897.720.351.5348.471617849200412998812.295.877.621.551.5248.481593832200312922712.416.017.522.151.548.51599825200212845312.866.457.322.451.4748.531647821200112762713.386.957.122.551.4648.541702818200012674314.037.58722.951.6348.371771814199912578614.648.186.925.451.4348.571909810199812476115.649.146.725.751.2548.751991807199712362616.5710.066.52651.0748.932038801(1)(1)出生率和增長率趨勢分析:通過繪制出生率和增長率隨時(shí)間的變化趨勢圖,可以分析人口的生育和增長情況。答:importmatplotlib.pyplotasplt#年份years=list(range(1998,2025))#出生率和增長率birth_rates=[15.64,14.64,14.03,13.38,12.86,12.41,12.29,12.40,12.09,12.10,12.14,11.95,11.90,13.27,14.57,13.03,13.83,11.99,13.57,12.64,10.86,10.41,8.52,7.52,6.77,6.39,6.77]growth_rates=[9.14,8.18,7.58,6.95,6.45,6.01,5.87,5.89,5.28,5.17,5.08,4.87,4.79,6.13,7.43,5.90,6.71,4.93,6.53,5.58,3.78,3.32,1.45,0.34,-0.60,-1.48,-0.99]#繪制圖形plt.figure(figsize=(12,6))plt.plot(years,birth_rates,marker='o',label='出生率(‰)',color='blue')plt.plot(years,growth_rates,marker='o',label='增長率(‰)',color='orange')#添加標(biāo)題和標(biāo)簽plt.title('出生率與增長率變化趨勢(1998-2024)',fontsize=16)plt.xlabel('年份',fontsize=14)plt.ylabel('率(‰)',fontsize=14)plt.xticks(years,rotation=45)plt.legend()plt.grid()#顯示圖形plt.tight_layout()plt.show()運(yùn)行結(jié)果如下:(2)人口結(jié)構(gòu)分析:繪制餅圖來展示老年人口、兒童人口、男性人口和女性人口在總?cè)丝谥械谋壤?,從而分析人口結(jié)構(gòu)。答:數(shù)據(jù)提取根據(jù)提供的數(shù)據(jù),我們可以從最新年份(2024年)提取以下信息:總?cè)丝冢?40828萬人老年人口比例:15.6%兒童人口比例:51.06%男性
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 集合與常用邏輯用語(題型清單)解析版-2026屆高考數(shù)學(xué)一輪復(fù)習(xí)
- 談?wù)務(wù)n堂朗讀教學(xué)的幾點(diǎn)做法
- 2025至2030年中國腳踏垃圾桶行業(yè)市場發(fā)展監(jiān)測及投資前景展望報(bào)告
- 2025至2030年中國UV固化涂料行業(yè)市場全景分析及投資策略研究報(bào)告
- 2025至2030年中國顯示屏電源行業(yè)市場全景監(jiān)測及投資前景展望報(bào)告
- 2025至2030年中國休閑度假村行業(yè)市場前景預(yù)測及投資戰(zhàn)略研究報(bào)告
- 2025至2030年中國按摩枕行業(yè)市場發(fā)展監(jiān)測及投資戰(zhàn)略規(guī)劃報(bào)告
- MySQL數(shù)據(jù)庫應(yīng)用實(shí)戰(zhàn)教程(慕課版)(第2版)實(shí)訓(xùn)指導(dǎo)-8-綜合案例-圖書管理系統(tǒng)
- 軍工配件外協(xié)加工協(xié)議書
- 雙元制簽學(xué)徒協(xié)議還勞動合同
- 最全螺栓扭矩表(各種標(biāo)準(zhǔn))
- WS/T 174-1999血中鉛、鎘的石墨爐原子吸收光譜測定方法
- GB/T 9119-2010板式平焊鋼制管法蘭
- GB/T 2912.1-2009紡織品甲醛的測定第1部分:游離和水解的甲醛(水萃取法)
- GB/T 17591-2006阻燃織物
- 孤獨(dú)癥譜系障礙課件
- MOSFET版圖設(shè)計(jì)課件
- 腦癱兒童家庭康復(fù)(課堂)課件
- 帕金森診斷與鑒別診斷
- 線路工程施工質(zhì)量三級自檢報(bào)告(范文)
- 工程情況說明表
評論
0/150
提交評論