數(shù)據(jù)采集與處理付東普課后參考答案_第1頁
數(shù)據(jù)采集與處理付東普課后參考答案_第2頁
數(shù)據(jù)采集與處理付東普課后參考答案_第3頁
數(shù)據(jù)采集與處理付東普課后參考答案_第4頁
數(shù)據(jù)采集與處理付東普課后參考答案_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、簡(jiǎn)要描述數(shù)據(jù)分析的總體過程答案:數(shù)據(jù)分析的總體過程,一般是從現(xiàn)實(shí)世界或應(yīng)用系統(tǒng)中進(jìn)行數(shù)據(jù)抽取,然后進(jìn)行數(shù)據(jù)預(yù)處理、數(shù)據(jù)探索與可視化、機(jī)器學(xué)習(xí)與統(tǒng)計(jì)建模、模型校驗(yàn)及應(yīng)用部署和生成報(bào)告。具體如下圖所示:2、大數(shù)據(jù)的特征有哪些?答案:大數(shù)據(jù)一般具有4V+1O特征:數(shù)據(jù)量大(Volume)、數(shù)據(jù)類型繁多(Variety)、數(shù)據(jù)產(chǎn)生速度快(Velocity)和數(shù)據(jù)價(jià)值密度低(Value),以及基本是在線數(shù)據(jù)(Online)。3、作為一個(gè)數(shù)據(jù)分析師,需要掌握哪些技能?答案:由于數(shù)據(jù)分析與數(shù)據(jù)科學(xué)是一個(gè)跨學(xué)科的領(lǐng)域,涉及學(xué)科包括數(shù)學(xué)與統(tǒng)計(jì)、計(jì)算機(jī)科學(xué)、大數(shù)據(jù)技術(shù)等。另外,數(shù)據(jù)分析師需要與客戶溝通需求并交流數(shù)據(jù)分析結(jié)果,因此還需要具有一定的人文素養(yǎng)??傮w而言,數(shù)據(jù)分析師需要掌握以下技能:1)技術(shù)性技能:計(jì)算機(jī)科學(xué)。包括:Python編程,Hadoop平臺(tái),SQL數(shù)據(jù)庫與編碼,ApacheSpark,MachineLearning,andAI,數(shù)據(jù)可視化,非結(jié)構(gòu)化數(shù)據(jù)處理2)非技術(shù)性技能,包括:求知欲,商業(yè)智慧,溝通技巧,團(tuán)隊(duì)協(xié)作等4、試列出一些數(shù)據(jù)度量的單位,這些單位之間的數(shù)量關(guān)系是什么?答案:部分?jǐn)?shù)據(jù)度量單位包括:Kilobyte〈KB〉=1024bytes,Megabyte〈MB〉=1024Kilobytes,Gigabyte〈GB〉=1024Megabytes,Terabyte〈TB〉=1024Gigabytes,Petabyte〈PB〉=1024terabytes,Exabyte〈EB〉=1024petabytes;等。每級(jí)度量單位之間是1024倍的關(guān)系5、根據(jù)描述實(shí)體的不同,數(shù)據(jù)的類型都有哪些?答案:描述不同的實(shí)體,其數(shù)據(jù)類型可能不同,可分為:1)類別(Categorical)i)名義(Nominal),即沒有大小順序的類別,如民族、性別、種族、顏色、院系、專業(yè)等。ii)序數(shù)(Ordinal),即由大小順序的類別,如成績等級(jí)、行業(yè)排名等。2)數(shù)字(Numerical)i)離散(Discrete),是指其數(shù)值只能用自然數(shù)或整數(shù)單位計(jì)算的數(shù)據(jù),如企業(yè)個(gè)數(shù)、職工人數(shù)、設(shè)備臺(tái)數(shù)等。ii)連續(xù)(Continuous),是指一定區(qū)間內(nèi)可以任意取值,其數(shù)值是連續(xù)不斷的,相鄰兩個(gè)數(shù)值可作無限分割,即可取無限個(gè)數(shù)值。如身高、體重、里程等。6、數(shù)據(jù)預(yù)處理過程一般包括哪些技術(shù)?答案:主要的數(shù)據(jù)預(yù)處理技術(shù)包括數(shù)據(jù)整合,數(shù)據(jù)清洗,冗余消除,數(shù)據(jù)歸約等。第二章Python基礎(chǔ)1、Python的設(shè)計(jì)具有很強(qiáng)的可讀性,相比其他語言具有的特色語法有:A、交互式B、解釋型C、面向?qū)ο驞、服務(wù)端語言答案:ABC2、當(dāng)知道條件為真,想要程序無限執(zhí)行直到人為停止的話,可以需要下列哪個(gè)選項(xiàng):A、forB、breakC、whileD、if答案:C3、求比10小且大于或等于0的偶數(shù),例題如下:

x

=

10

while

x:

x

=

x-1

if

x%2!=0:

____

print

(x)A、breakB、continueC、yieldD、return答案:B

4、在Python中,數(shù)字類型共包括以下哪幾種類型:A、intB、boolC、floatD、complex答案:ACD5、下列字符中對(duì)應(yīng)ASCII碼數(shù)值最小的是哪個(gè)選項(xiàng):A、BB、aC、kD、M答案:A6、Python3解釋器執(zhí)行not1and1的結(jié)果為:A、TrueB、FalseC、0D、1答案:B

解析:7、在信息組織和存儲(chǔ)中,最基本的單位是:A、字節(jié)(Byte)B、字(Word)C、雙字(DoubleWord)D、二進(jìn)制位(bit)答案:D8、關(guān)于下面對(duì)unicode作用的描述,正確的是:A、能夠使計(jì)算機(jī)對(duì)跨語言的文本進(jìn)行轉(zhuǎn)換及處理B、能夠減少存儲(chǔ)大小,節(jié)約存儲(chǔ)成本C、能夠使計(jì)算機(jī)對(duì)跨平臺(tái)的文本進(jìn)行轉(zhuǎn)換及處理D、能夠使計(jì)算機(jī)處理文本速度更快答案:AC9、假設(shè),現(xiàn)在有一個(gè)UTF-8編碼的文件,需要轉(zhuǎn)碼成GBK編碼的文件,下列操作流程正確的是:A、encode('gbk')--->decode('utf-8')B、encode('utf-8')--->decode('gbk')C、decode('gbk')--->encode('utf-8')D、decode('utf-8')--->encode('gbk')答案:D10、在Python中,字符串s='abc',那么執(zhí)行表達(dá)式s+'d'之后,s的打印結(jié)果是什么?A、'abc'B、'abcd'C、'abc+d'D、None答案:A

11、Python解釋器執(zhí)行'abbacabb'.strip('ab')的結(jié)果是:A、'aca'B、'ca'C、'c'D、語法錯(cuò)誤答案:C

12、現(xiàn)有列表l=[1,2,3,4,5,6,7,8,9],那么python3解釋器執(zhí)行l(wèi)[1:3]='abc'后執(zhí)行l(wèi)[2]的結(jié)果是:A、4B、bC、abcD、c答案:B13、在python中,關(guān)于reverse方法的說法中,你認(rèn)為正確的是:A、reverse方法返回新的列表B、reverse方法沒有返回值C、reverse方法對(duì)列表內(nèi)的所有元素進(jìn)行反向排序D、reverse方法只對(duì)一級(jí)元素進(jìn)行反向排序答案:BD14、現(xiàn)有代碼t=('a'),在Python3解釋器中查看type(t)的結(jié)果為:A、<class'str'>B、<class'tuple'>C、(class'list')D、(class'set')答案:A

15、現(xiàn)有代碼d={},在python3解釋器中執(zhí)行d[([1,2])]='b'得到的結(jié)果為:A、TypeError:unhashabletype:'list'B、{([1,2]):'b'}C、{(1):'b'}D、以上說法都不對(duì)答案:A

16、Python3解釋器執(zhí)行forxin{'a':'b','c':'d'}:print(x)的結(jié)果是什么:A、bcB、acC、bdD、ab答案:B17、Python3解釋器執(zhí)行{1,2,'a'}|{2,3,4}的結(jié)果為:A、{2,3,4}B、{1,2,3,4,'a'}C、{1,2,3,4}D、{2,3,4,'a'}答案:B18、Python解釋器執(zhí)行'{0},{2},{1}'.format('a','b','c'):A、'a,b,c'B、'a,c,c'C、'a,c,b'D、'c,c,b'答案:C19、Python解釋器執(zhí)行'-'.join({'a':'b','c':'d'})的結(jié)果為:A、'a-c'B、'a-b-c-d'C、'b-d'D、報(bào)錯(cuò)答案:A20、Python3解釋器執(zhí)行'AB2C3D'.lower().title()的結(jié)果是:A、'Ab2c3d'B、'Ab2C3D'C、'AB2C3D'D、語法錯(cuò)誤答案:B

21、Python3解釋器執(zhí)行L=[1,4,3].extend(list())后L的值是:A、[1,4,3]B、[1,4,3,[]]C、[]D、None答案:D22、在Python中,關(guān)于copy模塊的說法,正確的是:A、copy模塊為python的內(nèi)置模塊,用時(shí)無需導(dǎo)入B、可以通過變量復(fù)制操作代替copyC、copy.copy淺拷貝只拷貝父對(duì)象,不會(huì)拷貝對(duì)象的內(nèi)部的子對(duì)象D、copy.deepcopy深拷貝拷貝對(duì)象及其子對(duì)象答案:CD23、現(xiàn)有代碼t=(1,2),在python3解釋器中執(zhí)行t*3得到的結(jié)果為:A、語法錯(cuò)誤B、(1,2,1,2,1,2)C、(2,4,2,4)D、以上都不對(duì)答案:B24、Python3.X中,分別查詢長度為一百萬的列表和字典的靠后的元素,哪個(gè)速度更快?A、列表快B、字典快C、一樣快D、元組快答案:B

25、關(guān)于hash函數(shù),下面說法正確的是:A、hash函數(shù)提高了數(shù)據(jù)安全性B、hash函數(shù)可以用來對(duì)密碼進(jìn)行加密C、hash函數(shù)可以用來校驗(yàn)文件的一致性D、上面說的都對(duì)答案:D26、Python是一種跨平臺(tái)、開源、免費(fèi)的高級(jí)動(dòng)態(tài)編程語言。答案:正確27、在Windows平臺(tái)上編寫的Python程序無法在Unix平臺(tái)運(yùn)行。答案:錯(cuò)誤28、不可以在同一臺(tái)計(jì)算機(jī)上安裝多個(gè)Python版本。答案:錯(cuò)誤29、Python變量使用前必須先聲明,并且一旦聲明就不能再在當(dāng)前作用域內(nèi)改變其類型。答案:錯(cuò)誤30、在Python3.x中可以使用中文作為變量名。答案:正確31、加法運(yùn)算符可以用來連接字符串并生成新字符串。答案:正確32、pip命令也支持?jǐn)U展名為.whl的文件直接安裝Python擴(kuò)展庫。答案:正確33、Python代碼的注釋只有一種方式,那就是使用#符號(hào)。答案:錯(cuò)誤34、調(diào)用函數(shù)時(shí),在實(shí)參前面加一個(gè)符號(hào)*表示序列解包。答案:正確

35、字典的“鍵”必須是不可變的。答案:正確36、已知x為非空列表,那么表達(dá)式sorted(x,reverse=True)==list(reversed(x))的值一定是True。答案:錯(cuò)誤37、Python集合中的元素不允許重復(fù)。答案:正確38、Python字典中的“值”不允許重復(fù)。答案:錯(cuò)誤39、Python列表中所有元素必須為相同類型的數(shù)據(jù)。答案:錯(cuò)誤40、Python列表、元組、字符串都屬于有序序列。答案:正確41、對(duì)于列表而言,在尾部追加元素比在中間位置插入元素速度更快一些,尤其是對(duì)于包含大量元素的列表。答案:正確42、假設(shè)x為列表對(duì)象,那么x.pop()和x.pop(-1)的作用是一樣的。答案:正確43、帶有else子句的循環(huán),如果因?yàn)閳?zhí)行了break語句而退出的話,則會(huì)執(zhí)行else子句中的代碼。答案:錯(cuò)誤44、在UTF-8編碼中一個(gè)漢字需要占用3個(gè)字節(jié)。答案:正確45、元組是不可變的,不支持列表對(duì)象的insert()、remove()等方法,也不支持del命令刪除其中的元素,但可以使用del命令刪除整個(gè)元組對(duì)象。答案:正確46、假設(shè)x是含有5個(gè)元素的列表,那么切片操作x[10:]是無法執(zhí)行的,會(huì)拋出異常。答案:錯(cuò)誤47、只能對(duì)列表進(jìn)行切片操作,不能對(duì)元組和字符串進(jìn)行切片操作。答案:錯(cuò)誤48、Python集合不支持使用下標(biāo)訪問其中的元素。答案:正確49、刪除列表中重復(fù)元素最簡(jiǎn)單的方法是將其轉(zhuǎn)換為集合后再重新轉(zhuǎn)換為列表。答案:正確50、對(duì)于生成器對(duì)象x=(3foriinrange(5)),連續(xù)兩次執(zhí)行l(wèi)ist(x)的結(jié)果是一樣的。答案:錯(cuò)誤51、Python運(yùn)算符%不僅可以用來求余數(shù),還可以用來格式化字符串。答案:正確52、表達(dá)式{1,3,2}>{1,2,3}的值為True。答案:錯(cuò)誤53、定義函數(shù)時(shí),即使該函數(shù)不需要接收任何參數(shù),也必須保留一對(duì)空的圓括號(hào)來表示這是一個(gè)函數(shù)。答案:正確54、定義Python函數(shù)時(shí)必須指定函數(shù)返回值類型。答案:錯(cuò)誤55、函數(shù)內(nèi)部定義的局部變量當(dāng)函數(shù)調(diào)用結(jié)束后被自動(dòng)刪除。答案:正確56、創(chuàng)建只包含一個(gè)元素的元組時(shí),必須在元素后面加一個(gè)逗號(hào),例如(3,)。答案:正確57、Python標(biāo)準(zhǔn)庫random的方法randint(m,n)用來生成一個(gè)[m,n]區(qū)間上的隨機(jī)整數(shù)。答案:正確58、Python支持多繼承,如果父類中有相同的方法名,而在子類中調(diào)用時(shí)沒有指定父類名,則Python解釋器將從左向右按順序進(jìn)行搜索。答案:正確59、在try...except...else結(jié)構(gòu)中,如果try塊的語句引發(fā)了異常則會(huì)執(zhí)行else塊中的代碼。答案:錯(cuò)誤60、異常處理結(jié)構(gòu)中的finally塊中代碼仍然有可能出錯(cuò)從而再次引發(fā)異常。答案:正確61、在Python中定義類時(shí)實(shí)例方法的第一個(gè)參數(shù)名稱不管是什么,都表示對(duì)象自身。答案:正確62、在函數(shù)內(nèi)部沒有任何聲明的情況下直接為某個(gè)變量賦值,這個(gè)變量一定是函數(shù)內(nèi)部的局部變量。答案:正確63、在Python中定義函數(shù)時(shí)不需要聲明函數(shù)參數(shù)的類型。答案:正確64、表達(dá)式{}==None的值為True。答案:錯(cuò)誤65、定義函數(shù)時(shí),帶有默認(rèn)值的參數(shù)必須出現(xiàn)在參數(shù)列表的最右端,任何一個(gè)帶有默認(rèn)值的參數(shù)右邊不允許出現(xiàn)沒有默認(rèn)值的參數(shù)。答案:正確66、調(diào)用函數(shù)時(shí)傳遞的實(shí)參個(gè)數(shù)必須與函數(shù)形參個(gè)數(shù)相等才行。答案:錯(cuò)誤67、在類定義的外部沒有任何辦法可以訪問對(duì)象的私有成員。答案:錯(cuò)誤68、Python類的構(gòu)造函數(shù)是__init__()。答案:正確69、假設(shè)random模塊已導(dǎo)入,那么表達(dá)式random.sample(range(10),20)的作用是生成20個(gè)不重復(fù)的整數(shù)。答案:錯(cuò)誤70、lambda表達(dá)式中可以使用任意復(fù)雜的表達(dá)式,但是必須只編寫一個(gè)表達(dá)式。答案:正確71、Python里用來告知解釋器跳過當(dāng)前循環(huán)中的剩余語句,然后繼續(xù)進(jìn)行下一輪循環(huán),此關(guān)鍵詞是_________。答案:continue72、Python安裝擴(kuò)展庫常用的是_______工具。答案:pip73、用JupyterNotebook編輯保存的文件,缺省的文件擴(kuò)展名是_________。答案:ipynb74、使用pip工具查看當(dāng)前已安裝的Python擴(kuò)展庫的完整命令是_____________。答案:piplist75、在Python中__________表示空類型。答案:None76、列表、元組、字符串是Python的_________(有序?無序)序列。答案:有序77、查看變量類型的Python內(nèi)置函數(shù)是_____________。答案:type()78、Python運(yùn)算符中用來計(jì)算整商的是_________。答案://79、表達(dá)式[1,2,3]*3的執(zhí)行結(jié)果為______________________。答案:[1,2,3,1,2,3,1,2,3]80、list(map(str,[1,2,3]))的執(zhí)行結(jié)果為_____________________。答案:[‘1’,‘2’,‘3’]81、假設(shè)列表對(duì)象aList的值為[3,4,5,6,7,9,11,13,15,17],那么切片aList[3:7]得到的值是______________________。答案:[6,7,9,11]82、使用列表推導(dǎo)式生成包含10個(gè)數(shù)字5的列表(使用變量名i,range函數(shù)),語句可以寫為______________________。答案:[5foriinrange(10)]83、假設(shè)有列表a=['name','age','sex']和b=['Dong',38,'Male'],請(qǐng)使用一個(gè)語句將這兩個(gè)列表的內(nèi)容轉(zhuǎn)換為字典c,并且以列表a中的元素為“鍵”,以列表b中的元素為“值”,這個(gè)語句可以寫為_____________________。答案:c=dict(zip(a,b));c=dict(zip(a,b))84、任意長度的Python列表、元組和字符串中最后一個(gè)元素的下標(biāo)為________。答案:-185、Python語句list(range(1,10,3))執(zhí)行結(jié)果為___________________。答案:[1,4,7]86、Python使用符號(hào)__________來劃分語句塊。答案:縮進(jìn)對(duì)齊87、Python有序序列類型包括___________、___________、___________三種。答案:字符串;列表;元組;列表;元組;字符串;元組;字符串;列表;88、語句x=3==3,5執(zhí)行結(jié)束后,變量x的值為_____________。答案:(True,5)89、切片操作list(range(6))[::2]執(zhí)行結(jié)果為________________。答案:[0,2,4]90、Python3.x語句print(1,2,3,sep=':')的輸出結(jié)果為____________。答案:1:2:391、表達(dá)式int(4**0.5)的值為____________。答案:292、Python內(nèi)置函數(shù)_________可以返回列表、元組、字典、集合對(duì)象中元素個(gè)數(shù)。答案:len()93、已知列表對(duì)象x=['11','2','3'],則表達(dá)式max(x)的值為___________。答案:'3'94、iPython中的魔法命令,以字符____________開始。答案:%;;95、已知列表對(duì)象x=['11','2','3'],則表達(dá)式max(x,key=len)的值為___________。答案:'11'96、已知x=3和y=5,執(zhí)行語句x,y=y,x后x的值是_______。答案:597、字典對(duì)象的_____________方法返回字典中的“鍵-值對(duì)”列表。答案:items()98、已知x={1:2},那么執(zhí)行語句x[2]=3之后,x的值為________________。答案:{1:2,2:3}99、表達(dá)式{1,2,3,4}-{3,4,5,6}的值為__________________。答案:{1,2}100、表達(dá)式set([1,1,2,3])的值為____________________。答案:{1,2,3}101、使用列表推導(dǎo)式得到100以內(nèi)所有能被13整除的數(shù)的代碼可以寫作___________________________________。答案:[iforiinrange(100)ifi%13==0];;102、表達(dá)式3<5>2的值為_______________。答案:True103、已知x={'a':'b','c':'d'},那么表達(dá)式'b'inx的值為______________。答案:False104、表達(dá)式3or5的值為________。答案:3105、表達(dá)式0or5的值為_________。答案:5106、已知x=[3,5,7],那么表達(dá)式x[10:]的值為____________。答案:[]107、已知x=[3,7,5],那么執(zhí)行語句x.sort(reverse=True)之后,x的值為_________________。答案:[7,5,3]108、表達(dá)式list(zip([1,2],[3,4]))的值為________________________。答案:[(1,3),(2,4)]109、已知列表x=[1,2],那么表達(dá)式list(enumerate(x))的值為_______________。答案:[(0,1),(1,2)]110、已知x=list(range(10)),則表達(dá)式x[-4:]的值為__________。答案:[6,7,8,9]111、表達(dá)式3<<2的值為_______________。答案:12112、Python3.x語句print(1,2,3,sep=':')的輸出結(jié)果為________________。答案:1:2:3113、在循環(huán)語句中,__________語句的作用是提前結(jié)束本層循環(huán)。答案:break114、表達(dá)式'%c'%65的值為_________。答案:'A'115、表達(dá)式':'.join('abcdefg'.split('cd'))的值為______________。答案:'ab:efg'116、表達(dá)式isinstance('abcdefg',str)的值為____________。答案:True117、表達(dá)式'Hello'.upper()的值為___________。答案:'HELLO'118、表達(dá)式round(3.7)的值為_________。答案:4119、已知x='a234b123c',并且re模塊已導(dǎo)入,則表達(dá)式re.split('\d+',x)的值為____________。答案:['a','b','c']120、已知列表x=list(range(10)),那么執(zhí)行語句delx[::2]之后,x的值為_________。答案:[1,3,5,7,9]121、已知x=[1,2,3,2,3],執(zhí)行語句x.remove(2)之后,x的值為____________。答案:[1,3,2,3]122、已知列表x=[1,2,3],那么執(zhí)行語句x.insert(0,4)只有,x的值為___________。答案:[4,1,2,3]123、已知列表x=[1,2,3],那么執(zhí)行語句x.pop(0)之后,x的值為_________。答案:[2,3]124、表達(dá)式list(map(lambdax:x+5,[1,2,3,4,5]))的值為______________________。答案:[6,7,8,9,10]125、表達(dá)式5if5>6else(6if3>2else5)的值為_________。答案:6126、表達(dá)式len('中國'.encode('utf-8'))的值為___________。答案:6127、表達(dá)式chr(ord('A')+2)的值為__________。答案:'C'128、Python中定義函數(shù)的關(guān)鍵字是_________________。答案:def129、如果函數(shù)中沒有return語句或者return語句不帶任何返回值,那么該函數(shù)的返回值為_________________。答案:None130、表達(dá)式'abcab'.replace('a','yy')的值為___________。答案:'yybcyyb'131、表達(dá)式'abcab'.strip('ab')的值為__________。答案:'c'132、表達(dá)式list(filter(None,[0,1,2,3,0,0]))的值為___________________。答案:[1,2,3]133、表達(dá)式list(filter(lambdax:x>2,[0,1,2,3,0,0]))的值為_________。答案:[3]134、表達(dá)式type(3)in(int,float,complex)的值為____________。答案:True135、表達(dá)式eval('3+5')的值為_________________。答案:8136、Python標(biāo)準(zhǔn)庫random中的___________方法作用是從序列中隨機(jī)選擇1個(gè)元素。答案:choice()137、Python標(biāo)準(zhǔn)庫random中的sample(seq,k)方法作用是從序列中選擇________(重復(fù)?不重復(fù)?)的k個(gè)元素。答案:不重復(fù)138、random模塊中_____________方法的作用是將列表中的元素隨機(jī)亂序。答案:shuffle()139、執(zhí)行代碼x,y,z=sorted([1,3,2])之后,變量y的值為______。答案:2140、表達(dá)式{1,2,3}|{3,4,5}的值為_____________________。答案:{1,2,3,4,5}141、表達(dá)式{1,2,3}&{3,4,5}的值為______________。答案:{3}142、Python內(nèi)置函數(shù)_____________用來打開或創(chuàng)建文件并返回文件對(duì)象。答案:open()143、使用上下文管理關(guān)鍵字______________可以自動(dòng)管理文件對(duì)象,不論何種原因結(jié)束該關(guān)鍵字中的語句塊,都能保證文件被正確關(guān)閉。答案:with144、表達(dá)式dict(zip([1,2],[3,4]))的值為____________________________。答案:{1:3,2:4}145、已知x={1,2,3},那么執(zhí)行語句x.add(3)之后,x的值為__________。答案:{1,2,3}146、導(dǎo)入reduce()函數(shù)后,表達(dá)式reduce(lambdax,y:x-y,[1,2,3])的值為____。答案:-4147、已知有函數(shù)定義defdemo(*p):returnsum(p),那么表達(dá)式demo(1,2,3)的值為______。答案:6148、已知列表x=[1,2],那么執(zhí)行語句x.append([3])之后,x的值為_____________。答案:[1,2,[3]]149、表達(dá)式{1,2,3}=={1,3,2}的值為___________。答案:True150、表達(dá)式[1,2,3]==[1,3,2]的值為____________。答案:False151、已知x={1:2,2:3,3:4},那么表達(dá)式sum(x.values())的值為_________。答案:9152、已知x=[3,2,3,3,4],那么表達(dá)式[indexforindex,valueinenumerate(x)ifvalue==3]的值為____________。答案:[0,2,3]153、表達(dá)式1234%1000//100的值為___________。答案:2154、已知列表x=[1,3,2],那么執(zhí)行語句x.reverse()之后,x的值為____________。答案:[2,3,1]155、已知字典x={i:str(i+3)foriinrange(3)},那么表達(dá)式sum(x)的值為______。答案:3156、已知列表x=[1,3,2],那么執(zhí)行語句a,b,c=sorted(x)之后,b的值為____。答案:2157、已知函數(shù)定義deffunc(**p):return''.join(sorted(p)),那么表達(dá)式func(x=1,y=2,z=3)的值為__________。答案:'xyz'158、已知x='abcd'和y='abcde',那么表達(dá)式[i==jfori,jinzip(x,y)]的值為________________。答案:[True,True,True,True]159、對(duì)于帶有else子句的for循環(huán)和while循環(huán),當(dāng)循環(huán)因循環(huán)條件不成立而自然結(jié)束時(shí)________(會(huì)?不會(huì)?)執(zhí)行else中的代碼。答案:會(huì)160、在iPython或JupyterNotebook中,要運(yùn)行外部的python文件,可以使用魔法命令___________。答案:%run161、表達(dá)式'test.py'.endswith(('.py','.pyw'))的值為__________。答案:True162、已知x=(3),那么表達(dá)式x*3的值為__________。答案:9163、已知x=(3,),那么表達(dá)式x*3的值為_____________。答案:(3,3,3)164、表達(dá)式len('abc'.ljust(20))的值為______________。答案:20165、假設(shè)正則表達(dá)式模塊re已導(dǎo)入,那么表達(dá)式re.sub('\d+','1','a12345bbbb67c890d0e')的值為_____________________。答案:'a1bbbb1c1d1e'166、字典對(duì)象的___________方法可以獲取指定“鍵”對(duì)應(yīng)的“值”,并且可以在指定“鍵”不存在的時(shí)候返回指定值,如果不指定則返回None。答案:get()167、知x={1:2,2:3},那么表達(dá)式x.get(3,4)的值為____。答案:4168、對(duì)文件進(jìn)行寫入操作之后,_______________方法用來在不關(guān)閉文件對(duì)象的情況下將緩沖區(qū)內(nèi)容寫入文件。答案:flush()169、已知x={1:1},那么執(zhí)行語句x[2]=2之后,len(x)的值為____________。答案:2170、已知列表x=[1,2],那么連續(xù)執(zhí)行命令y=x和y.append(3)之后,x的值為________。答案:[1,2,3]171、簡(jiǎn)述ascii、unicode、utf-8、gbk的關(guān)系?答案:

ascii是最早美國用的標(biāo)準(zhǔn)信息交換碼,把所有的字母的大小寫,各種符號(hào)用二進(jìn)制來表示,共有256中,加入些拉丁文等字符,1bytes代表一個(gè)字符,Unicode是為了統(tǒng)一世界各國語言的不用,統(tǒng)一用2個(gè)bytes代表一個(gè)字符,可以表達(dá)2**16=65556個(gè),稱為萬國語言,特點(diǎn):速度快,但浪費(fèi)空間,可以用在內(nèi)存處理中,兼容了utf-8,gbk,ASCII。

utf-8為了改變Unicode的這種缺點(diǎn),規(guī)定1個(gè)英文字符用1個(gè)字節(jié)表示,1個(gè)中文字符用3個(gè)字節(jié)表示。特點(diǎn):節(jié)省空間,速度慢,用在硬盤數(shù)據(jù)傳輸,網(wǎng)絡(luò)數(shù)據(jù)傳輸。gbk是中文的字符編碼,用2個(gè)字節(jié)代表一個(gè)字符。172、編寫程序,讓用戶在鍵盤上輸入一個(gè)自然數(shù)n,然后在區(qū)間[1,5n]上隨機(jī)生成n個(gè)不重復(fù)的自然數(shù),輸出這些自然數(shù),然后對(duì)這些自然數(shù)的進(jìn)行處理,只保留所有偶數(shù)并輸出。答案:

importrandom

n=int(input('請(qǐng)輸入一個(gè)自然數(shù):'))

data=random.sample(range(1,5*n+1),n)

print(data)

print([dfordindataifd%2==0])173、編寫程序,生成包含20個(gè)隨機(jī)數(shù)的列表,然后將前10個(gè)元素升序排列,后10個(gè)元素降序排列,并輸出結(jié)果。答案:

importrandom

data=[random.randrange(50)foriinrange(20)]

print(data)

data[:10]=sorted(data[:10])

data[10:]=sorted(data[10:],reverse=True)

print(data)174、編寫程序,使用篩選法求解小于n的所有素?cái)?shù)。答案:maxNumber

=

int(input('請(qǐng)輸入一個(gè)自然數(shù):

'))

lst

=

list(range(2,

maxNumber))

#最大整數(shù)的平方根

m

=

int(maxNumber**0.5)

for

index,

value

in

enumerate(lst):

#如果當(dāng)前數(shù)字已大于最大整數(shù)的平方根,

結(jié)束判斷

if

value

>

m:

break

#對(duì)該位置之后的元素進(jìn)行過濾

lst[index+1:]

=

filter(lambda

x:

x%value

!=

0,lst[index+1:])

print(lst)175、編寫程序,要求用戶輸入一些數(shù)字,輸出這些數(shù)字中僅出現(xiàn)過一次的那些數(shù)字。作業(yè)要求:1.寫出上述問題Python代碼,并保留運(yùn)行中間結(jié)果,上傳JupyterNotebook格式源程序,即擴(kuò)展名為.ipynb(包含中間運(yùn)行輸出結(jié)果),千萬不要使用瀏覽器中的另存為網(wǎng)頁的導(dǎo)出文件格式2.源代碼要求有必要的功能說明注釋,并注明自己學(xué)號(hào)和姓名答案:

data

=

input('請(qǐng)輸入使用空格分隔的若干數(shù)字:

').split()

data

=

[int(num)

for

num

in

data]

for

num

in

data:

if

data.count(num)

==

1:

print(num)176、編寫函數(shù),接收?qǐng)A的半徑作為參數(shù),返回圓的面積。作業(yè)要求:1.寫出上述問題Python代碼,并保留運(yùn)行中間結(jié)果,上傳JupyterNotebook格式源程序,即擴(kuò)展名為.ipynb(包含中間運(yùn)行輸出結(jié)果),千萬不要使用瀏覽器中的另存為網(wǎng)頁的導(dǎo)出文件格式2.源代碼要求有必要的功能說明注釋,并注明自己學(xué)號(hào)和姓名答案:

from

math

import

pi

as

PI

def

CircleArea(r):

if

isinstance(r,

(int,float)):

#確保接收的參數(shù)為數(shù)值

return

PI*r*r

else:

print('You

must

give

me

an

integer

or

float

as

radius.')

print(CircleArea(4))177、編寫函數(shù),接收一個(gè)字符串,判斷該字符串是否為回文。所謂回文是指,從前向后讀和從后向前讀是一樣的。答案:

def

isPalindrome1(text):

'''循環(huán),

首尾檢查'''

length

=

len(text)

for

i

in

range(length//2+1):

if

text[i]

!=

text[-1-i]:

return

False

return

True178、編寫程序,要求用戶輸入一些數(shù)字,輸出這些數(shù)字中僅出現(xiàn)出現(xiàn)過一次的那些數(shù)字。答案:data

=

input('請(qǐng)輸入使用空格分隔的若干數(shù)字:

').split()

data

=

[int(num)

for

num

in

data]

for

num

in

data:

if

data.count(num)

==

1:

print(num)

解析:179、編寫函數(shù),接收一個(gè)字符串,返回其中每個(gè)字符的最后一次出現(xiàn),并按每個(gè)字符最后一次出現(xiàn)的先后順序一次存入列表。例如,對(duì)于字符串’abcda’的處理結(jié)果為[‘b’,

’c’,

’d’,

’a’],而字符串’abcbda’的處理結(jié)果為[‘c’,

’b’,

’d’,

’a’]。答案:def

lastAppear(s):

result

=

[]

for

ch

in

s:

if

ch

in

result:

result.remove(ch)

result.append(ch)

return

result180、假設(shè)有兩個(gè)文本文件file1.txt和file2.txt,編寫程序merge.py,把兩個(gè)文本文件中的內(nèi)容合并到新文件result.txt中。要求文件file1.txt和file2.txt中的行在result.txt中交替出現(xiàn)。即result.txt中的奇數(shù)行來自file1.txt,偶數(shù)行來自file2.txt。如果兩個(gè)文件行數(shù)不一樣,則處理完行數(shù)較少的文件之后,把另一個(gè)文件中剩余的所有行直接追加到result.txt的最后。答案:fileName1

=

input('Input

a

fileName:

')

fileName2

=

input('Input

another

fileName:

')

with

open('result.txt',

'w',

encoding='utf8')

as

fp:

with

open(fileName1,

encoding='utf8')

as

fp1,open(fileName2,

encoding='utf8')

as

fp2:

while

True:

line1

=

fp1.readline()

if

line1:

fp.write(line1)

else:

flag

=

False

break

line2

=

fp2.readline()

if

line2:

fp.write(line2)

else:

flag

=

True

break

fp3

=

fp1

if

flag

else

fp2

for

line

in

fp3:

fp.write(fp3.readline())181、編寫程序,創(chuàng)建一個(gè)字典,然后讓用戶輸入一個(gè)內(nèi)容作為鍵并輸出字典中對(duì)應(yīng)元素的值。如果用戶輸入的鍵不存在就進(jìn)行適當(dāng)?shù)奶崾?如果用戶輸入單詞quit的任意大小寫(如Quit,QUIT)組合就結(jié)束程序。另外,要求在輸入或者使用輸入作為檢索處使用異常處理結(jié)構(gòu)。答案:d

=

{str(i):i**3

for

i

in

range(20)}

while

True:

num

=

input('請(qǐng)輸入一個(gè)數(shù)字:

').lower()

if

num

==

'quit':

break

try:

print(d[num])

except:

print('請(qǐng)重新輸入')

解析:182、編寫程序,要求等待用戶輸入名字、地點(diǎn)和愛好,根據(jù)用戶的名字和愛好進(jìn)行任意顯示,如“敬愛可親的xxx,最喜歡在xxx地方干xxx”。答案:

v=input("請(qǐng)輸入輸入名字、地點(diǎn)、愛好并用“+”隔開:")

v1,v2,v3=v.split("+")

content="敬愛可親的{name},最喜歡在{place}地方干{like}"

c=content.format(name=v1,place=v2,like=v3)

print(c)183、編寫程序,制作隨機(jī)驗(yàn)證碼并讓用戶輸入進(jìn)行驗(yàn)證。流程如下:

--用戶執(zhí)行程序

--給用戶顯示需要輸入的驗(yàn)證碼

--用戶輸入的值

用戶輸入的值和顯示的值相同時(shí)顯示正確信息;否則繼續(xù)生成隨機(jī)驗(yàn)證碼繼續(xù)等待用戶輸入。答案:import

randomdef

check_code():

checkcode

=

''

for

i

in

range(4):

current

=

random.randrange(0,4)

if

current

!=

i:

temp

=

chr(random.randint(65,90))

else:

temp

=

random.randint(0,9)

checkcode

+=

str(temp)

return

checkcode

code

=

check_code()

while

True:

code

=

check_code()

print(code)

v

=

input("請(qǐng)輸入驗(yàn)證碼:")

if

v

==

code:

print("輸入正確!!!")

break

else:

print("請(qǐng)重新輸入:")184、編寫程序,利用集合特性獲取指定范圍內(nèi)隨機(jī)生成的一定數(shù)量的不重復(fù)整數(shù)。答案:import

random

def

randomNumbers(number,

start,

end):

Data=

set()

while

len(Data)<number:

Ele=random.randint(start,

end)

Data.add(Ele)

return

Data

data=randomNumbers(10,

1,

100)

print(data)185、使用列表推導(dǎo)式得到100以內(nèi)所有能被3整除的數(shù)的代碼可以寫作(變量名使用i)答案:[iforiinrange(100)if(i%3==0)]186、下列表達(dá)式的值為True的是A、5+4j>2-3jB、3>2>2C、(3,2)>(’a’,’b’)D、’abc’<’xyz’答案:D《數(shù)據(jù)采集與處理:基于Python》復(fù)習(xí)思考題、習(xí)題與答案第三章Numpy與Pandas基礎(chǔ)1、計(jì)算numpy中元素個(gè)數(shù)的方法是?A、np.sqrt()B、np.size()C、np.identityD、np.len()答案:B2、已知c=np.arange(16).reshape(2,4,2)那么c.sum(axis=0)所得的結(jié)果為?A、array([[12,16],[44,48],[76,80]])B、array([[1,5,9,13],[17,21,25,29],[33,37,41,45]])C、array([[24,27],[30,33],[36,39],[42,45]])D、array([[8,10],[12,14],[16,18],[20,22]])答案:D

解析:構(gòu)造數(shù)組為2個(gè)4*2數(shù)組,axis=0即求和是在第0維前后兩頁array上對(duì)應(yīng)元素求和,得到4*2的數(shù)組3、有數(shù)組n=np.arange(24).reshape(2,-1,2,2),n.shape的返回結(jié)果是什么?A、(2,3,2,2)B、(2,2,2,2)C、(2,4,2,2)D、(2,6,2,2)答案:A4、numpy中創(chuàng)建全為0的矩陣使用函數(shù)為?A、zeros.B、ones.C、empty.D、arange.答案:A5、numpy中向量轉(zhuǎn)成矩陣使用函數(shù)為?A、randomB、revalC、reshapeD、arange答案:C

解析:考察numpy函數(shù)功能6、在使用numpy時(shí)需要如何導(dǎo)入?A、不用導(dǎo)入,直接使用B、importnumpyasnpC、importsysD、importpandas答案:B

解析:考察numpy模塊名稱與導(dǎo)入方法7、importnumpyasnp;t1=np.arange(16).reshape((4,4)),如何將t1數(shù)組進(jìn)行行列轉(zhuǎn)置?A、t1.TB、t1.transpose()C、t1.swapaxes(0,1)D、以上都對(duì)答案:D

解析:numpy多維數(shù)組的多種轉(zhuǎn)置方法8、對(duì)numpy生成的數(shù)組中,隨機(jī)選擇部分樣本,使用哪個(gè)函數(shù)?A、sample()B、select()C、choice()D、shuffle()答案:C

解析:choice(a[,size,replace,p]):從一維數(shù)組a中以概率p抽取元素,形成size形狀新數(shù)組,replace表示是否可以重用元素,默認(rèn)為False9、下列numpy中哪個(gè)函數(shù)可以生成符合標(biāo)準(zhǔn)正態(tài)分布的數(shù)組?A、random.rand()B、random.randint()C、random.random()D、random.randn()答案:D

解析:考察numpy隨機(jī)數(shù)生成函數(shù)及區(qū)別10、importnumpyasnp;arr=np.arange(10).reshape((5,2))[:,0:-1:2],arr的值是?A、[[1],[2],[3],[4],[5]]B、[[5],[6],[7],[8],[9]]C、[[0],[2],[4],[6],[8]]D、所列結(jié)果都不對(duì)答案:C

解析:考察numpy數(shù)組重塑與切片操作11、使用numpy創(chuàng)建一個(gè)大小為10的零向量數(shù)組,函數(shù)形式為____。答案:zeros(10);np.zeros(10)12、使用numpy創(chuàng)建一個(gè)數(shù)組,使它的值為10到49,函數(shù)形式為____。答案:arange(10,50);arange(10,50,1);np.arange(10,50);

np.arange(10,50,1)13、5x3矩陣乘3x2矩陣,對(duì)應(yīng)結(jié)果的形狀是____。答案:(5,2);5x214、arr=np.arange(10),寫出獲取數(shù)組arr第3至第8個(gè)元素(注意3和8不是索引下標(biāo))的切片語句____。答案:arr[2:8]15、numpy中根據(jù)起止數(shù)據(jù)等間距地生成數(shù)組的函數(shù)是____。答案:linspace();np.linspace()16、numpy中能夠一次完成多個(gè)數(shù)組拼接的函數(shù)是____。答案:concatenate();np.concatenate()17、numpy生成的數(shù)組中,其元素?cái)?shù)據(jù)類型____(必須相同/可以不同)。答案:必須相同18、TT=np.arange(4)-2,變量TT的值為____。答案:[-2-101];array([-2,-1,0,1]);[-2,-1,0,1];[-2,-1,0,1][-2-101];array([-2,-1,

0,

1]);[-2,-1,

0,

1];[-2,-1,0,1]19、TT=np.arange(4).mean(),變量TT的值為____。答案:1.520、numpy中讀取CSV文件的函數(shù)是____。答案:loadtxt();np.loadtxt()21、使用np.random.random創(chuàng)建一個(gè)10*10對(duì)象,并打印出其最大、最新元素和均值。

{答案:importnumpyasnp

a=np.random.random((10,10))

print(a.max(),a.min(),a.mean())

}22、使用numpy生成3行4列的數(shù)值為0至11之間整數(shù)的2維數(shù)組,然后使矩陣每行的數(shù)據(jù)減去該行的均值,并保持原來形狀,輸出結(jié)果。試寫出完整Python代碼。

{答案:importnumpyasnp

X=np.arange(12).reshape((3,4))

print("X=",X)

Y=X-X.mean(axis=1,keepdims=True)

print("Y=",Y)

}

解析:numpy.mean(a,axis,dtype,out,keepdims),axis=1:壓縮列,對(duì)各行求均值;keepdims=True表示維度縮減的軸在運(yùn)算之后仍被保留23、創(chuàng)建一個(gè)長度為10的一維全為0的ndarray對(duì)象,第五個(gè)元素為1,并打印,寫出完整Python代碼.

{答案:importnumpyasnp

a=np.zeros((10,))

a[4]=1

print(a)

}24、給定數(shù)組[1,2,3,4,5],如何得到在這個(gè)數(shù)組的每個(gè)元素之間插入3個(gè)0后的新數(shù)組?試使用numpy模塊寫出完整Python代碼.

{答案:importnumpyasnp

nd1=np.arange(1,6)

nd2=np.zeros(shape=17,dtype=int)

nd2[::4]=nd1

}25、創(chuàng)建一個(gè)5*3隨機(jī)矩陣和一個(gè)3*2的元素值為0~100之間隨機(jī)整數(shù)的矩陣,求矩陣積,打印結(jié)果。試用numpy模塊實(shí)現(xiàn)并寫出完整Python代碼.

{答案:importnumpyasnp

n1=np.random.randint(0,100,size=(5,3))

n2=np.random.randint(0,100,size=(3,2))

result=np.dot(n1,n2)

print("結(jié)果為",result)

}26、通過Numpy創(chuàng)建的數(shù)組與列表相比,有何異同?數(shù)據(jù)類型限制、存儲(chǔ)效率、運(yùn)算效率、矩陣運(yùn)算、算術(shù)運(yùn)算區(qū)別如乘法?答案:Numpy創(chuàng)建的數(shù)組,其元素?cái)?shù)據(jù)類型都是相同的,而列表則可以不同,這導(dǎo)致列表的存儲(chǔ)效率和運(yùn)算效率都較低。Numpy數(shù)組支持矩陣運(yùn)算,而列表不支持;在算術(shù)運(yùn)算上也有區(qū)別,對(duì)于乘法運(yùn)算,列表是對(duì)元素進(jìn)行復(fù)制,而Numpy數(shù)組則是針對(duì)其上的每個(gè)元素進(jìn)行乘法算術(shù)運(yùn)算27、Numpy創(chuàng)建數(shù)組的函數(shù)arange()、linspace()、logspace()各有什么作用?答案:arange函數(shù)類似于python的range函數(shù),通過指定開始值、終值和步長來創(chuàng)建一維數(shù)組,注意數(shù)組不包括終值linspace函數(shù)通過指定開始值、終值和元素個(gè)數(shù)來創(chuàng)建一維數(shù)組,可以通過endpoint關(guān)鍵字指定是否包括終值,缺省設(shè)置是包括終值logspace函數(shù)和linspace類似,不過它創(chuàng)建等比數(shù)列,起始位和終止位代表的是10的冪(默認(rèn)基數(shù)為10),如果想要改變基數(shù),則需要修改其默認(rèn)基數(shù),輸入有第四個(gè)參數(shù)base,改變其值即可。28、Numpy存取元素的方法都有哪些?存取后的變量與原始數(shù)組是否共享數(shù)據(jù)空間,分不同情況么?答案:Numpy存取元素的方法有多種,如:1)用整數(shù)作為下標(biāo)可以獲取數(shù)組中的某個(gè)元素;2)用范圍作為下標(biāo)獲取數(shù)組的一個(gè)切片,符號(hào)使用“:”,形式為[起點(diǎn):終點(diǎn):步長],下標(biāo)可以使用負(fù)數(shù),表示從數(shù)組后往前數(shù),缺省范圍為左閉右開。通過下標(biāo)范圍獲取的新的數(shù)組是原始數(shù)組的一個(gè)視圖,即與原始數(shù)組共享同一塊數(shù)據(jù)空間;3)使用整數(shù)序列。當(dāng)使用整數(shù)序列對(duì)數(shù)組元素進(jìn)行存取時(shí),將使用整數(shù)序列中的每個(gè)元素作為下標(biāo),整數(shù)序列可以是列表或者數(shù)組。使用整數(shù)序列作為下標(biāo)獲得的數(shù)組不和原始數(shù)組共享數(shù)據(jù)空間;4)使用布爾數(shù)組。當(dāng)使用布爾數(shù)組b作為下標(biāo)存取數(shù)組x中的元素時(shí),將收集數(shù)組x中所有在數(shù)組b中對(duì)應(yīng)下標(biāo)為True的元素。使用布爾數(shù)組作為下標(biāo)獲得的數(shù)組不和原始數(shù)組共享數(shù)據(jù)空間,注意這種方式只對(duì)應(yīng)于布爾數(shù)組,不能使用布爾列表29、Numpy的any()和all()方法有何作用和區(qū)別?答案:數(shù)組的any()或all()方法。只要數(shù)組中有一個(gè)值為True,則any()返回True;而只有數(shù)組的全部元素都為True,all()才返回True30、Numpy的兩個(gè)數(shù)組的shape不同的話,如何進(jìn)行算術(shù)運(yùn)算?答案:使用ufunc函數(shù)對(duì)兩個(gè)數(shù)組進(jìn)行計(jì)算時(shí),ufunc函數(shù)會(huì)對(duì)這兩個(gè)數(shù)組的對(duì)應(yīng)元素進(jìn)行計(jì)算,因此它要求這兩個(gè)數(shù)組有相同的大小(shape相同)。如果兩個(gè)數(shù)組的shape不同的話,會(huì)進(jìn)行如下的廣播(broadcasting)處理:1.讓所有輸入數(shù)組都向其中shape最長的數(shù)組看齊,shape中不足的部分都通過在前面加1補(bǔ)齊。2.輸出數(shù)組的shape是輸入數(shù)組shape的各個(gè)軸上的最大值。3.如果輸入數(shù)組的某個(gè)軸和輸出數(shù)組的對(duì)應(yīng)軸的長度相同或者其長度為1時(shí),這個(gè)數(shù)組能夠用來計(jì)算,否則出錯(cuò)。4.當(dāng)輸入數(shù)組的某個(gè)軸的長度為1時(shí),沿著此軸運(yùn)算時(shí)都用此軸上的第一組值。31、Numpy數(shù)組的拼接方法都有哪些?簡(jiǎn)單介紹答案:Python中numpy數(shù)組的合并有很多方法,如:1)np.append()。用于合并兩個(gè)數(shù)組。該函數(shù)返回一個(gè)新數(shù)組,原始數(shù)組保持不變.函數(shù)語法為:numpy.append(arr,values,axis=None).axis:該軸指定沿其附加值的軸。如果未提供軸,則將兩個(gè)陣列展平;values:值是類似數(shù)組的對(duì)象,并附加到“arr”元素的末尾2)np.concatenate()。參數(shù)為要連接的數(shù)組對(duì)象和指定連接的軸axis。axis=1進(jìn)行水平組合,axis=0進(jìn)行垂直組合3)np.stack()。把數(shù)組給堆疊起來,函數(shù)原型為:stack(arrays,axis=0),arrays可以傳數(shù)組和列表。axis=1進(jìn)行水平組合,即水平(按列順序)將數(shù)組進(jìn)行堆疊;axis=0進(jìn)行垂直組合4)np.hstack()。參數(shù)為要連接的數(shù)組對(duì)象,進(jìn)行水平組合5)np.vstack()。參數(shù)為要連接的數(shù)組對(duì)象,進(jìn)行垂直組合6)np.dstack()。深度組合:沿著縱軸方向組合其中最泛用的是第一個(gè)和第二個(gè)。第一個(gè)可讀性好,比較靈活,但是占內(nèi)存大。第二個(gè)則沒有內(nèi)存占用大的問題32、Pandas中DataFrame對(duì)象調(diào)用描述性統(tǒng)計(jì)方法describe,對(duì)數(shù)值型的列數(shù)據(jù)會(huì)輸出哪些統(tǒng)計(jì)結(jié)果,而對(duì)類別或文本型的列數(shù)據(jù)又會(huì)輸出哪些統(tǒng)計(jì)結(jié)果答案:數(shù)值型數(shù)據(jù)列的描述性統(tǒng)計(jì),會(huì)輸出針對(duì)數(shù)據(jù)的統(tǒng)計(jì)信息,如均值、標(biāo)準(zhǔn)差、中值、最小值、最大值及四分位統(tǒng)計(jì)值等;而類別或文本型列數(shù)據(jù)的描述性統(tǒng)計(jì),其結(jié)果包括count(計(jì)數(shù))、unique(唯一值個(gè)數(shù))、top(出現(xiàn)頻率最高的值)、freq(頻率最高值的頻度)等。33、簡(jiǎn)述pandas數(shù)據(jù)對(duì)象Series和DataFrame的算數(shù)運(yùn)算的對(duì)齊機(jī)制答案:pandas可以對(duì)不同索引的對(duì)象進(jìn)行算術(shù)運(yùn)算,如果存在不同的索引對(duì),結(jié)果的索引就是該索引對(duì)的并集。sereis相加會(huì)自動(dòng)進(jìn)行數(shù)據(jù)對(duì)齊操作,在不重疊的索引處會(huì)使用NA(NaN)值進(jìn)行填充,series進(jìn)行算術(shù)運(yùn)算的時(shí)候,不需要保證series的大小一致。dataFrame相加時(shí),對(duì)齊操作需要行和列的索引都重疊的時(shí)候才會(huì)相加,否則會(huì)使用NA值進(jìn)行填充。使用add方法對(duì)兩個(gè)series進(jìn)行相加的時(shí)候,設(shè)置fill_value的值是對(duì)于不存在索引的series用指定值進(jìn)行填充后再進(jìn)行相加。除了加法add,還有sub減法,div除法,mul乘法,使用方式與add相同。DataFrame與series一樣。34、簡(jiǎn)述Pandas中的兩類數(shù)據(jù)結(jié)構(gòu)Series和DataFrame的特點(diǎn)與作用?答案:Series是一維標(biāo)記數(shù)組,可以存儲(chǔ)任意數(shù)據(jù)類型,如整型、字符串、浮點(diǎn)型和Python對(duì)象等,軸標(biāo)一般指索引。DataFrame是二維標(biāo)記數(shù)據(jù)結(jié)構(gòu),列可以是不同的數(shù)據(jù)類型。它是最常用的pandas對(duì)象,像Series一樣可以接收多種輸入:lists、dicts、series和DataFrame等。初始化對(duì)象時(shí),除了數(shù)據(jù)還可以傳index和columns這兩個(gè)參數(shù)。Series兼具Numpy數(shù)組的特點(diǎn),運(yùn)算效率高,支持對(duì)元素的成批量運(yùn)算,但相比Numpy數(shù)組,還支持自動(dòng)對(duì)齊的計(jì)算,并提供了多種函數(shù)支持?jǐn)?shù)據(jù)的讀入、處理、分析等功能;特別是DataFrame,支持多種數(shù)據(jù)源的讀入,特別是對(duì)關(guān)系數(shù)據(jù)庫的訪問和數(shù)據(jù)處理,非常高效。35、簡(jiǎn)述Pandas中DataFrame與Numpy中二維數(shù)組的檢索方法的異同答案:對(duì)于DataFrame對(duì)象,其只有直接的df[][]索引和ndarray不一樣,此時(shí)DataFrame先索引的是列,而不是行,也沒有df[i,j]的索引方法,但是對(duì)于切片索引以及df.iloc的索引方法,和ndarray完全一樣;此外,DataFrame還有df.loc的標(biāo)簽索引方法。首先對(duì)于ndarray,如二維的ndarray對(duì)象arr,則arr[i]和arr[i][j](等價(jià)于arr(i,j))都可以表示索引,其中arr[i]表示行索引,arr[i][j]表示有順序的先進(jìn)行第一個(gè)維度的索引(即行),再進(jìn)行第二個(gè)維度的索引(即對(duì)應(yīng)的行中的元素)。對(duì)于DataFrame,如一個(gè)DataFrame對(duì)象df.雖然同ndarray類似,都有類似的索引方式,但是直接索引的內(nèi)容卻不一樣,比如df['a']得到第一列,這里不同于arr[i],對(duì)于DataFrame對(duì)象,直接的df[i]索引,得到的是第i+1列,而不是第i+1行。當(dāng)進(jìn)行切片索引的時(shí)候,比如重新定義df,切片索引又同ndarray一樣,df[:2]得到前兩行,而不是前兩列;df[:][:1]得到第一列。故在切片索引的時(shí)候,又和ndarray一樣了。此外,DataFrame對(duì)象還有索引方法df.iloc[]和df.loc[],前者是對(duì)index和columns為整數(shù)時(shí)的所以,后者是對(duì)index和columns為其他標(biāo)簽時(shí)的索引;對(duì)于df.iloc[],其索引方式和ndarray完全一樣,既可以以df.iloc[i][j]的方式索引,也可以以df.iloc[i,j]的方式索引,當(dāng)然也可以直接的df.iloc[i]的方式索引。因此,對(duì)于DtaFrame對(duì)象,其只有直接的df[][]索引和ndarray不一樣,此時(shí)DataFrame先索引的是列,而不是行,也沒有df[i,j]的索引方法,但是對(duì)于切片索引以及df.iloc的索引方法,和ndarray完全一樣;此外,DataFrame還有df.loc的標(biāo)簽索引方法。36、執(zhí)行importpandasaspd;obj=pd.Series(range(4),index=['a','b','c','d']);

obj[obj<1];輸出結(jié)果為A、a0B、b1C、b0D、c2答案:A37、一個(gè)含有具體數(shù)據(jù)和空值的DataFrame數(shù)據(jù)對(duì)象df,執(zhí)行df1=df.dropna(inplace=True)后:A、df1和df一樣,都是刪除了空值的結(jié)果B、df1為None,df為刪除了空值的結(jié)果C、df1為刪除了空值的結(jié)果,df不變D、df1為df操作前的值,df為刪除了空值的結(jié)果答案:B38、obj=pd.Series(['c','a','d','a','a','b','b','c','c']),運(yùn)行

list(obj.unique())返回結(jié)果為答案:['c','a','d','b']39、importpandasaspd;data=pd.DataFrame({'k1':['one','two']*3+['two'],'k2':[1,1,2,3,3,4,4]});檢索data中數(shù)值'two'的方法為:A、data.k1[1]B、data.loc[1,'k1']C、data.iloc[1,0]D、以上方法都正確答案:D40、importpandasaspd;data=pd.DataFrame({'k1':['one','two']*3+['two'],'k2':[1,1,2,3,3,4,4]});執(zhí)行data.k2.sum()返回結(jié)果為:答案:1841、由于數(shù)據(jù)類型和維度不同,Pandas的DataFrame對(duì)象和Series之間不能進(jìn)行算數(shù)運(yùn)算答案:錯(cuò)誤

42、對(duì)于一個(gè)含有空值的DataFrame對(duì)象df,執(zhí)行df.fillna(0,inplace=True)后,df中的空值填充為0,并且返回修改后的結(jié)果答案:錯(cuò)誤43、不設(shè)置index和columns參數(shù),基于一個(gè)多維數(shù)組使用pandas的DataFrame函數(shù)創(chuàng)建對(duì)象df,使用loc和iloc方法對(duì)df中數(shù)據(jù)進(jìn)行檢索的形式是相同的答案:正確44、一個(gè)DataFrame對(duì)象,調(diào)用其drop_duplicates()函數(shù)后,僅保留重復(fù)行中的最后一行答案:錯(cuò)誤45、對(duì)一個(gè)DataFrame對(duì)象調(diào)用其mean()方法,缺省執(zhí)行的操作是axis等于答案:046、對(duì)于包含多個(gè)列的DataFrame,調(diào)用其無參數(shù)的describe()函數(shù)后,僅返回?cái)?shù)據(jù)類型為數(shù)值的列的描述性統(tǒng)計(jì)信息答案:正確47、對(duì)于兩個(gè)columns完全相同的DataFrame,將其中一個(gè)的所有記錄追加到另一個(gè)對(duì)象,可使用函數(shù)答案:append();append;concat();concat48、兩個(gè)有相同和不同columns的DataFrame,如果要合并兩者的所有屬性和對(duì)應(yīng)記錄行,可使用如下方法A、join()B、merge()C、join()和merge()方法都可以D、沒法合并答案:C

解析:49、importpandasaspd,numpyasnp;

pd.DataFrame(np.arange(10,25).reshape(3,5)).ndim返回值為:答案:250、Dataframe之間的連接方法有哪些?答案:Pandas提供了大量的方法能夠輕松的對(duì)Series,DataFrame和Panel對(duì)象進(jìn)行各種符合各種邏輯關(guān)系的合并操作。1)Concat:函數(shù)形式為pd.concat(objs,axis=0,join='outer',join_axes=None,ignore_index=False,keys=None,levels=None,names=None,verify_integrity=False,Copy=True)2)Merge(類似于SQL類型的合并):函數(shù)形式為:pd.merge(left,right,how='inner',on=None,left_on=None,right_on=None,

left_index=False,right_index=False,sort=True,suffixes=('_x','_y'))默認(rèn)情況下,merge做的是“inner”連接,結(jié)果中的鍵是交集。其他方式還有“l(fā)eft”,“right”以及“outer”。3)Append(將一行連接到一個(gè)DataFrame上)51、Pandas提供了什么方法可以檢測(cè)缺失數(shù)據(jù)和重復(fù)數(shù)據(jù),哪些可以刪除缺失數(shù)據(jù)和重復(fù)數(shù)據(jù)?答案:pandas中用函數(shù)isnull和notnull來檢測(cè)數(shù)據(jù)丟失,使用drop、dropna函數(shù)可以刪除對(duì)應(yīng)行或列duplicated方法返回一個(gè)布爾型Series,表示各行是否是重復(fù)行;還有一個(gè)drop_duplicated方法,它返回一個(gè)移除了重復(fù)行的DataFrame:52、對(duì)于Dataframe對(duì)象,如何進(jìn)行分組統(tǒng)計(jì)?答案:首先使用groupby函數(shù)進(jìn)行分組,然后使用分組后的對(duì)象直接調(diào)用或使用agg函數(shù)調(diào)用聚合函數(shù)如mean、sum等就可以進(jìn)行分組統(tǒng)計(jì);另外,也可使用交叉表crosstab、數(shù)據(jù)透視表pivot_table函數(shù)等進(jìn)行簡(jiǎn)單的分組統(tǒng)計(jì)53、Pandas都提供了哪些方法可以讀取外部數(shù)據(jù)源?答案:Pandas提供了豐富的外部數(shù)據(jù)源訪問接口,如CSV、JSON、XML、HTML、EXCEL、HDF、關(guān)系數(shù)據(jù)庫等,相應(yīng)的函數(shù)則是以read_或to_打頭的讀寫函數(shù)《數(shù)據(jù)采集與處理:基于Python》復(fù)習(xí)思考題、習(xí)題與答案第四章數(shù)據(jù)可視化1、數(shù)據(jù)可視化中的組成有哪些方面?答案:數(shù)據(jù)可視化技術(shù)一般由下列三個(gè)方面組成:(1)科學(xué)可視化:主要關(guān)注三維現(xiàn)象的可視化,包含氣象學(xué)、生物學(xué)、物理學(xué)、農(nóng)學(xué)等。重點(diǎn)在于對(duì)客觀事物的體、面及光源等的逼真渲染。(2)信息可視化:將數(shù)據(jù)信息和知識(shí)轉(zhuǎn)換為一種視覺形式,在信息可視化中充分利用了人們對(duì)可視模式快速識(shí)別度自然能力。(3)可視化分析:是科學(xué)可視化與信息可視化領(lǐng)域發(fā)展的產(chǎn)物,側(cè)重于借助交互式的用戶界面而進(jìn)行對(duì)數(shù)據(jù)的分析與推理。2、如何在一張圖中比較不同類型的繪圖?有幾種方法?答案:使用比較類型的繪圖類型,如柱狀圖、餅

溫馨提示

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

評(píng)論

0/150

提交評(píng)論