《大數(shù)據(jù)分析:基于Python》 課件 第2章 數(shù)據(jù)類型_第1頁
《大數(shù)據(jù)分析:基于Python》 課件 第2章 數(shù)據(jù)類型_第2頁
《大數(shù)據(jù)分析:基于Python》 課件 第2章 數(shù)據(jù)類型_第3頁
《大數(shù)據(jù)分析:基于Python》 課件 第2章 數(shù)據(jù)類型_第4頁
《大數(shù)據(jù)分析:基于Python》 課件 第2章 數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

大數(shù)據(jù)分析:基于Python

第2章數(shù)據(jù)類型余本國常見的數(shù)據(jù)類型有:數(shù)值型:整數(shù)類型(int)、浮點(diǎn)數(shù)類型(float)和復(fù)數(shù)型(complex),用于處理數(shù)值計(jì)算和算術(shù)運(yùn)算。字符串類型(str):用于表示和處理文本和字符序列。列表(list)和元組(tuple):用于存儲(chǔ)和操作多個(gè)數(shù)據(jù)元素,例如有序集合。字典(dictionary):用于存儲(chǔ)和查找鍵-值對(duì),常用于構(gòu)建映射關(guān)系。集合(set):用于存儲(chǔ)唯一的元素,提供集合操作(如并集、交集等)。布爾類型(bool):用于表示真(True)或假(False)的邏輯值。2.1字符串

像a、4、%、<等單個(gè)字母、數(shù)字、符號(hào),我們稱之為字符型。字符型(str)是一種數(shù)據(jù)類型。字符型的變量可以存儲(chǔ)任何單個(gè)的字符,但該字符必須用引號(hào)引起來,單引號(hào)或者雙引號(hào)均可,如var='a',表示變量var是一個(gè)字符型。

字符串(string)表示由多個(gè)字符組成,是一串字符的序列,可以包含任何字符,如字母、數(shù)字、符號(hào)、空格等等。字符串通常用引號(hào)(單引號(hào)或雙引號(hào))引起來表示,例如“Hello,world!”,所以一個(gè)單詞、一句話、一首詩或一篇文章等,用引號(hào)引起來,它就是字符串。字符串可進(jìn)行多種操作,如拼接、截取、比較等。字符串中的字符是有順序的,從左到右按自然數(shù)(從0開始)的順序進(jìn)行編號(hào),這個(gè)順序號(hào)稱為索引(index)。如a="python",第一個(gè)字母p的編號(hào)就是0,所以p的索引就是0,依此類推,字母y的索引是1,最后一個(gè)字母n的索引是5。這個(gè)索引稱為順序索引。索引也可以從右到左,記為-1,-2,…等等,稱為逆序索引。如上a="python"的p字母的索引為-6,字母n的索引為-1。

字符串中的字符可以按照索引號(hào)提取或查找,如從a="python"中提取字符y,y的索引號(hào)為1或-5,y可用記號(hào)"python"[1]表示出來,也可表示為"python"[-5]、a[1]、a[-5]。代碼演示如下。In[1]:a="python"...:print(a[1])y

In[2]:a[-5]#可以不用print(),直接運(yùn)行Out[2]:'y'

In[3]:"python"[1]Out[3]:'y'

In[4]:"python"[-5]Out[4]:'y'所以若想從字符串中截取一個(gè)片段,需要索引號(hào)向后增加1,我們把這種截取稱為切片。格式為變量名或字符串后帶中括號(hào)[],括號(hào)內(nèi)為起止(start和stop)索引號(hào)兩個(gè)參數(shù),起止索引號(hào)間用冒號(hào)隔開,In[5]:a[2:5]Out[5]:'tho'切片的格式為:var[start:stop:step]其中:var表示字符串或字符串變量start表示起始位置的索引號(hào)stop表示結(jié)束位置的索引號(hào),不包含該索引的字符step表示步長,默認(rèn)步長為1當(dāng)切片范圍從0開始時(shí),start可以省略不寫,同樣當(dāng)范圍到左后一個(gè)字符時(shí),stop也可以省略不寫,如var[:3]等同var[0:3],如上例中的b[0:10:2]可以寫成b[::2]。當(dāng)step取負(fù)值時(shí),表示逆序。In[9]:b[::2]Out[9]:'13579'

In[10]:a[::-1]#該方法也常用于字符串翻轉(zhuǎn)Out[10]:'nohtyp'字符串是可以相加的,如字符串a(chǎn)和b相加,表示把a(bǔ)和b連接起來。In[11]:a+bOut[11]:'python123456789'字符串也可乘以一個(gè)數(shù),表示重復(fù)。字符串a(chǎn)*2,表示將a重復(fù)2次。In[12]:a*2Out[12]:'pythonpython'

字符串還有很多獨(dú)有的方法,比如將字符串a(chǎn)中的所有字母大寫、首字母大寫,甚至可以判斷a中的字符是全為數(shù)字還是字母等。In[13]:a.upper()#將字符串中字母大寫Out[13]:'PYTHON'

In[14]:a.isalpha()#判斷字符串中字符是否全為字母,返回邏輯值Out[14]:True

In[15]:a.isdigit()#判斷字符串中的字符是否全為數(shù)字Out[15]:False

In[16]:a.isalnum()#判斷字符串是否由數(shù)字和字母組成Out[16]:True

In[17]:a.find("t")#在字符串中查找字符t,返回找到的第一個(gè)索引Out[17]:2

In[18]:a.index("t")#在字符串中查找字符t的索引,返回第一個(gè)Out[18]:2

In[19]:a.replace("o","e")#將字符串中的字符o替換成eOut[19]:'pythen'字符串的方法較多,常用的如下。str.replace(old,new):將指定的舊字符串替換為新字符串。str.strip():去掉字符串兩端的空白字符。str.split():按空格或指定的分隔符將字符串拆分為多個(gè)部分,并返回一個(gè)列表。str.startswith(prefix):檢查字符串是否以指定的前綴開頭。str.endswith(suffix):檢查字符串是否以指定的后綴結(jié)尾。str.upper():將字符串轉(zhuǎn)換為大寫形式。str.lower():將字符串轉(zhuǎn)換為小寫形式。str.capitalize():將字符串的首字母大寫。str.title():將字符串中每個(gè)單詞的首字母大寫。str.isupper():檢查字符串是否全是大寫字母。str.islower():檢查字符串是否全是小寫字母。str.join(iterable):使用字符串作為連接符,連接可迭代對(duì)象中的元素。str.find(substring):在字符串中查找指定的子字符串,并返回它的起始位置。str.isalpha():檢查字符串是否只包含字母字符。str.isdigit():檢查字符串是否只包含數(shù)字字符??捎煤瘮?shù)type()函數(shù)來測(cè)試變量的類型;測(cè)一個(gè)字符串的長度(包含有多少個(gè)字符)可用函數(shù)len()。In[20]:type(a)Out[20]:str

In[21]:len(a)Out[21]:62.2列表

在Python中,列表(List)是一種有序、可變并且允許重復(fù)元素的數(shù)據(jù)類型。列表使用方括號(hào)[]表示,每個(gè)值之間用逗號(hào)分隔,這里的每個(gè)值稱為元素。如:lsi_1=[1,2,3,4,5]列表中可以包含不同數(shù)據(jù)類型的元素,如整數(shù)、浮點(diǎn)數(shù)、字符串,甚至是列表。In[1]:lsi_1=[1,2,3,4,5]

In[2]:lis_2=[1,2.5,"Hello",True,[1,2,3]]

In[3]:lis_2Out[3]:[1,2.5,'Hello',True,[1,2,3]]

列表是可變的,這意味著可以通過索引訪問和修改列表中的元素。列表的索引同字符串的索引。In[4]:q=[10,20,30,40,50]...:print(q[0])10

In[5]:print(q[-1])#逆索引訪問最后一個(gè)元素50

In[6]:q[2]=35#修改列表中索引號(hào)為2的元素...:qOut[6]:[10,20,35,40,50]修改列表中的某個(gè)元素,就是對(duì)這個(gè)位置上進(jìn)行賦值。列表還支持切片操作,可以通過指定起始索引和結(jié)束索引來獲取子列表:In[7]:lis_1=[1,2,3,4,5]...:print(lis_1[1:4])#輸出[2,3,4],獲取索引為1到3的子列表[2,3,4]

In[8]:print(lis_1[:3])#輸出[1,2,3],從頭部獲取索引為0到2的子列表[1,2,3]

In[9]:print(lis_1[2:])#輸出[3,4,5],從索引為2開始獲取到最后的子列表[3,4,5]

列表像字符串一樣,也具有許多其他常用的方法,如添加元素list.append()、合并列表list.extend()、計(jì)算列表長度len(list)等等。In[10]:q.append("a")#給列表追加元素

In[11]:qOut[11]:[10,20,35,40,50,'a']

In[12]:q.extend(lis_1)#合并兩個(gè)列表

In[13]:qOut[13]:[10,20,35,40,50,'a',1,2,3,4,5]合并兩個(gè)列表除了extend()方法,也可以直接使用+法,如q+lis_1。當(dāng)需要在列表中指定的索引位置插入一個(gè)元素時(shí),可使用insert()方法。In[14]:w=[1,2,3,4]...:w.insert(2,"a")#在w中的索引為2的位置上插入元素a

In[15]:wOut[15]:[1,2,'a',3,4]使用del關(guān)鍵字可以刪除列表中指定索引位置的元素,或者刪除整個(gè)列表。In[16]:delw[2]#刪除w中的索引為2的是元素

In[17]:wOut[17]:[1,2,3,4]In[18]:w.pop(1)#刪除索引號(hào)為1的元素,并會(huì)返回被刪除的元素Out[18]:2

In[19]:wOut[19]:[1,3,4]

In[20]:w.pop()#默認(rèn)刪除列表中最后一個(gè)元素Out[20]:4

In[21]:wOut[21]:[1,3]pop()方法用于刪除指定索引位置的元素,并返回被刪除的元素,默認(rèn)刪除最后一個(gè)元素。In[22]:delw#刪除整個(gè)列表

In[23]:w#列表已經(jīng)被刪除,所以會(huì)拋出變量不存在錯(cuò)誤Traceback(mostrecentcalllast):

CellIn[36],line1w

NameError:name'w'isnotdefined

列表刪除元素也可以使用remove()方法,remove()方法用于按照給定的元素進(jìn)行刪除,刪除的是列表中的第一個(gè)匹配項(xiàng)(從左到右)。In[24]:r=[10,"a",35,40,50,'a',1,2,3,4,5]

In[25]:r.remove("a")#刪除元素a,從左到右第一個(gè)

In[26]:rOut[26]:[10,35,40,50,'a',1,2,3,4,5]

In[27]:delr[3:5]#刪除列表中的一個(gè)切片

In[28]:rOut[28]:[10,35,40,1,2,3,4,5]

列表還有一些其他的函數(shù)和方法,如測(cè)列表的長度(包含元素的個(gè)數(shù))、最大值、最小值、排序、索引查詢等In[29]:len(r)Out[29]:8

In[30]:sorted(r)#利用函數(shù)排序,默認(rèn)為升序Out[30]:[1,2,3,4,5,10,35,40]

In[31]:r#利用sorted()排序不改變?cè)瘮?shù)Out[31]:[10,35,40,1,2,3,4,5]

In[32]:sorted(r,reverse=True)#添加參數(shù)reverse=False可逆序Out[32]:[40,35,10,5,4,3,2,1]

In[33]:r.sort()#利用方法排序,默認(rèn)升序,原列表被改變In[34]:rOut[34]:[1,2,3,4,5,10,35,40]

In[35]:r.sort(reverse=True)#添加參數(shù)reverse=True可逆序

In[36]:rOut[36]:[40,35,10,5,4,3,2,1]

In[37]:r.reverse()#對(duì)列表逆序

In[38]:rOut[38]:[1,2,3,4,5,10,35,40]

In[39]:max(r)#求列表中的最大值Out[39]:40

In[40]:min(r)#求列表中的最小值Out[40]:1

In[41]:r.index(35)#求列表中元素35的索引號(hào)Out[41]:6

In[42]:r.count(2)#統(tǒng)計(jì)列表中某個(gè)元素出現(xiàn)的次數(shù)Out[42]:1

也可以查找列表中出現(xiàn)次數(shù)最多的元素,利用max()函數(shù)中的參數(shù)key,key的值為列表的方法,注意省略方法后面的括號(hào)()。In[43]:nums=[2,1,3,6,5,1,2,1]...:most=max(nums,key=nums.count)#出現(xiàn)頻次最大的數(shù)...:mostOut[43]:11表示是nums列表中出現(xiàn)次數(shù)最多的元素。2.3元組Python中的元組(tuple)是一種不可變、有序的元素集合,其中每個(gè)元素可以是任意類型。

創(chuàng)建方法與列表相似,不同的是用小括號(hào)(),并且元組是不可變的,即元組是不能更改其中的元素。In[1]:t=(1,2,"a",[3,4])

In[2]:tOut[2]:(1,2,'a',[3,4])In[3]:t[3]Out[3]:[3,4]

In[4]:len(t)Out[4]:4

In[5]:type(t)Out[5]:tuple元組的索引切片方法同列表,包括一些函數(shù)如len()、type()等。

元組和列表之間可以相互轉(zhuǎn)化,將元組轉(zhuǎn)化為列表,只需使用list()函數(shù)即可,將列表轉(zhuǎn)化為元組只需使用tuple()即可。In[6]:list(t)#將t元組轉(zhuǎn)化為列表Out[6]:[1,2,'a',[3,4]]

In[7]:tuple(_)#將列表轉(zhuǎn)化為元組Out[7]:(1,2,'a',[3,4])說明:單下劃線“_”在這里作用是表示上一次運(yùn)算的結(jié)果。此處在執(zhí)行l(wèi)ist(t)時(shí)沒有將其賦值給某個(gè)變量,所以用“_”來表示。In[8]:t1=(1,2,3)...:t2=("a","b")

In[9]:t1+t2Out[9]:(1,2,3,'a','b')

In[10]:t2*2#元組乘以數(shù)Out[10]:('a','b','a','b')

In[11]:list(t2)*2#列表乘以數(shù)Out[11]:['a','b','a','b']元組和列表一樣,可以使用“+”和“*”,分別表示元素合并和重復(fù)。2.4字典

字典用花括號(hào)({})創(chuàng)建,字典中的每個(gè)元素是一個(gè)鍵(key)值(key)對(duì),鍵和值之間用冒號(hào)(:)隔開,而元素(多個(gè)鍵值對(duì))之間用逗號(hào)隔開,。Python中的字典(dict)是一種可變、無序的鍵值對(duì)集合,其中鍵是唯一的不可變數(shù)據(jù)類型。字典是一種非常有用的數(shù)據(jù)類型,它可以用于存儲(chǔ)、訪問和操作數(shù)據(jù),支持高效的查找、插入和刪除操作。In[1]:d={"apple":1,"banana":2,"orange":3}...:dOut[1]:{'apple':1,'banana':2,'orange':3}創(chuàng)建字典的方法比較多,也可以以二元元組、二原列表或者相互交叉等創(chuàng)建。但需要注意的是,列表數(shù)據(jù)類型是不能作為字典的鍵名。In[2]:d1=dict([(1,2),("a","b")])...:d1Out[2]:{1:2,'a':'b'}

In[3]:d2=dict(([1,2],("a","b")))...:d2Out[3]:{1:2,'a':'b'}字典的元素的值是可以修改的,由于字典是無序的,所以沒有像字符串、列表的索引,但有類似于索引的操作,把鍵名key當(dāng)作索引即可。如上面的字典變量d2,要提取元素鍵為a的值,可以用d2["a"],返回其值value為"b"。In[4]:d2["a"]Out[4]:'b'這種提取字典鍵值的方法僅限于提取的鍵名在字典中存在,否則會(huì)報(bào)錯(cuò)。為了改變這種不友好的方式,可以使用get()方法。get()方法提取的鍵值不一定在字典中存在,若存在則返回提取到對(duì)應(yīng)的值,若字典中不存在,則什么也不返回,當(dāng)然也可以使用參數(shù)給出提示信息,如“你提取的鍵名不存在”。In[5]:d2.get("a")Out[5]:'b'

In[6]:d2.get("d")#沒有d的鍵值對(duì),所以返回空

In[7]:d2.get("d","你提取的鍵名不存在!")Out[7]:'你提取的鍵名不存在!'In[8]:d2["c"]=3#增加元素,因?yàn)閐2中沒有鍵名為“c”的鍵值對(duì)...:d2Out[8]:{1:2,'a':'b','c':3}

In[9]:d2["c"]=0#修改元素的值...:d2Out[9]:{1:2,'a':'b','c':0}

字典增加元素跟修改元素的值一樣。修改元素的值,直接給這個(gè)元素的鍵賦值即可,當(dāng)要修改的元素不存在時(shí),即是添加元素。字典的合并使用update()方法,也可以使用雙*合并{**dict1,**dict2}。In[10]:d1.update(d2)#合并兩個(gè)字典,把d2合并到d1中去

In[11]:d1Out[11]:{1:2,'a':'b','c':0}

In[12]:{**d,**d2}#合并字典Out[12]:{'apple':1,'banana':2,'orange':3,1:2,'a':'b','c':0}In[13]:d1.pop("c")#按照給定的鍵名刪除字典的鍵值對(duì)Out[13]:0

In[14]:d1Out[14]:{1:2,'a':'b'}字典的刪除使用同列表相同的方法pop(),也可以使用del方法。In[15]:d2.items()#將字典轉(zhuǎn)化為“類”二元元組列表模式Out[15]:dict_items([(1,2),('a','b'),('c',0)])

In[16]:list(_)#轉(zhuǎn)化為列表Out[16]:[(1,2),('a','b'),('c',0)]字典可以轉(zhuǎn)化為二元元組或列表,使用items()方法。字典還提供了其他許多方法,用于添加、刪除、訪問和操作鍵值對(duì)。以下是一些常用的字典方法:keys():返回字典中所有的鍵。values():返回字典中所有的值。items():返回字典中所有的鍵值對(duì)。get(key,default):根據(jù)鍵獲取值,如果鍵不存在則返回默認(rèn)值。pop(key[,default]):根據(jù)鍵移除并返回值,如果鍵不存在則返回默認(rèn)值。clear():移除字典中的所有鍵值對(duì)。update(other_dict):將另一個(gè)字典的鍵值對(duì)添加到字典中。deld[key]:根據(jù)鍵刪除字典中的鍵值對(duì)。ind.keys():檢查鍵是否存在于字典中。In[17]:d2.keys()Out[17]:dict_keys([1,'a','c'])2.5集合Python中的集合(set)是一種可變、無序、唯一元素的集合。集合中的元素沒有重復(fù),因此集合可以用來進(jìn)行去重操作。集合中的元素可以是任意類型,包括數(shù)字、字符串、列表、元組等。

集合用花括號(hào){}表示,元素之間用逗號(hào)分開。注意空集合使用set()表示,{}表示空字典。In[1]:s={1,2,"a","b"}#創(chuàng)建一個(gè)集合

...:sOut[1]:{1,2,'a','b'}

In[2]:a=[1,2,3,1]

...:aa=set(a)#用列表創(chuàng)建一個(gè)集合,過濾掉重復(fù)元素

...:aaOut[2]:{1,2,3}

In[3]:type({})#{}表示空字典Out[3]:dictIn[4]:type(set())#set()表示空集合Out[4]:set集合添加元素可以使用add()方法;刪除元素使用remove()方法。從集合中刪除一個(gè)元素,也可以使用discard()方法,該方法從集合中刪除一個(gè)元素時(shí),如果元素不存在則不會(huì)報(bào)錯(cuò)。In[5]:s.add("d")#增加一個(gè)元素“d”In[6]:sOut[6]:{1,2,'a','b','d'}

In[7]:s.remove("d")#刪除元素“d”In[8]:sOut[8]:{1,2,'a','b'}

In[9]:s.remove("e")#刪除一個(gè)不存在的元素“e”會(huì)報(bào)錯(cuò)Traceback(mostrecentcalllast):CellIn[32],line1s.remove("e")KeyError:'e'In[10]:

溫馨提示

  • 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)論