版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Python數(shù)據(jù)處理人工智能技術(shù)應(yīng)用導(dǎo)論010203Python基本數(shù)據(jù)類型常用數(shù)據(jù)處理模塊常見數(shù)據(jù)集簡介目錄04數(shù)據(jù)收集、整理與清洗05數(shù)據(jù)分析06圖像處理01Python基本數(shù)據(jù)類型PARTONE3.1Python基本數(shù)據(jù)類型Python語言提供了基本的內(nèi)置數(shù)據(jù)類型,即Python的標(biāo)準(zhǔn)數(shù)據(jù)類型。標(biāo)準(zhǔn)數(shù)據(jù)類型共有6種,包括Number(數(shù)字)、String(字符串)、List(列表)、Tuple(元組)、Set(集合)和Dictionary(字典)。其中,String(字符串)、List(列表)、Tuple(元組)為有序序列數(shù)據(jù)類型。序列中的每個元素都從前向后依次分配一個數(shù)字來表示它的位置或索引,第一個元素索引是0,第二個索引是1,…,依此類推。同時,序列中的元素位置或索引也可從后向前進(jìn)行編號,最后一個元素索引為-1,倒數(shù)第二個為-2,…,依此類推。即序列中每個元素的位置或索引有兩種表示方式。3.1Python基本數(shù)據(jù)類型Number(數(shù)字類型)Python的數(shù)字類型包括int、float、bool和complex復(fù)數(shù)類型。當(dāng)指定一個值時,就創(chuàng)建了一個Number類型的對象。其基本運(yùn)算如下:(1)=:簡單的賦值運(yùn)算符,如c=a+b是將a+b的運(yùn)算結(jié)果賦值給c。(2)+=:加法賦值運(yùn)算符,如c+=a等效于c=c+a。(3)-=:減法賦值運(yùn)算符,如c-=a等效于c=c-a。(4)*=:乘法賦值運(yùn)算符,如c*=a等效于c=c*a。(5)/=:除法賦值運(yùn)算符,如c/=a等效于c=c/a。(6)%=:取模賦值運(yùn)算符,如c%=a等效于c=c%a。(7)**=:冪賦值運(yùn)算符,如c**=a等效于c=c**a。(8)//=:取整除賦值運(yùn)算符,c//=a等效于c=c//a。3.1Python基本數(shù)據(jù)類型【示例3-1】Python數(shù)據(jù)運(yùn)算。代碼3-1:ch3_1_NumberofPython01a=1002a+=203print(a)04a*=1005print(a)06print(a/5)【運(yùn)行結(jié)果】1212024.03.1Python基本數(shù)據(jù)類型列表列表是最常用的Python數(shù)據(jù)類型,它可以作為一個方括號[]內(nèi)的逗號分隔值出現(xiàn)。列表的數(shù)據(jù)項不需要具有相同的類型。1、創(chuàng)建一個列表,如下所示:list1=[1997,2000,‘physics’,2017,2018,‘chemistry’,]list2=["a","b","c","d“]3.1Python基本數(shù)據(jù)類型2、訪問列表中的值使用下標(biāo)索引來訪問列表中的值,也可以使用方括號的形式截取字符?!臼纠?-2】
列表訪問。代碼3-2:ch3_2_AccessofList01list1=[1997,2000,'physics',2017,2018,'chemistry']02list2=[1,2,3,4,5,6,7]03print("list1[0]:",list1[0])04print("list1[5]:",list1[5])05print("list2[1:5]:",list2[1:5])【運(yùn)行結(jié)果】list1[0]:1997list1[5]:chemistrylist2[1:5]:[2,3,4,5]3.1Python基本數(shù)據(jù)類型3、更新列表可以對列表的數(shù)據(jù)項進(jìn)行修改或更新,也可以使用append()方法來添加列表項。【示例3-3】
更新列表。代碼3-3:ch3_3_UpdateofList01list=['physics','chemistry',1997,2022]02print("Valueavailableatindex2:")03print(list[2])04list[2]=201805print("Newvalueavailableatindex2:")06print(list[2])3.1Python基本數(shù)據(jù)類型3、更新列表可以對列表的數(shù)據(jù)項進(jìn)行修改或更新,也可以使用append()方法來添加列表項。【運(yùn)行結(jié)果】Valueavailableatindex2:1997Newvalueavailableatindex2:20183.1Python基本數(shù)據(jù)類型4、合并列表可以對列表利用append()、extend()、+、*、+=等方法進(jìn)行合并。append()
向列表尾部追加一個新元素,在原有列表上增加。extend()
向列表尾部追加一個列表,將列表中的每個元素都追加進(jìn)來,在原有列表上增加。+
直接用+號看上去與用extend()一樣的效果,但是實際上是生成了一個新列表存這兩個列表的和,只能用在兩個列表相加上。+=
效果與extend()一樣,向原列表追加一個新元素,在原有列表上增加。*號用于重復(fù)列表。3.1Python基本數(shù)據(jù)類型【示例3-4】
合并列表。代碼3-4:ch3_4_MergeList01list=['physics','chemistry',2020,2021]02list.append(2022)03list1=['math','english']04list+=list105print(list)【運(yùn)行結(jié)果】['physics','chemistry',2020,2021,2022,'math','english']3.1Python基本數(shù)據(jù)類型5、刪除列表元素可以使用del語句來刪除列表的的元素。remove()函數(shù)用于移除列表中某個值的第一個匹配項?!臼纠?-5】
刪除列表元素。代碼3-5:ch3_5_DeleteofElemensts01list=['physics','chemistry',1997,2000,2018,1997,2000]02del(list[2])03list.remove(2000)04print(list)【運(yùn)行結(jié)果】['physics','chemistry',2018,1997,2000]3.1Python基本數(shù)據(jù)類型6、in判斷元素是否存在于列表中>>>3in[1,2,3]True7、列表截取
【示例3-6】
列表截取。代碼3-6:ch3_6_Listinterception01L=['Google','Runoob','Taobao']02print(L[2])03print(L[-2])04print(L[1:])【運(yùn)行結(jié)果】TaobaoRunoob['Runoob','Taobao']3.1Python基本數(shù)據(jù)類型8、Python列表操作的函數(shù)和方法列表操作包含以下函數(shù):cmp(list1,list2):比較兩個列表的元素;len(list):列表元素個數(shù);max(list):返回列表元素最大值;min(list):返回列表元素最小值;list(seq):將元組轉(zhuǎn)換為列表。3.1Python基本數(shù)據(jù)類型列表操作包含以下方法:list.append(obj):在列表末尾添加新的對象;list.count(obj):統(tǒng)計某個元素在列表中出現(xiàn)的次數(shù);list.extend(seq):在列表末尾一次性追加另一個序列中的多個值(用新列表擴(kuò)展原來的列表);list.index(obj):從列表中找出某個值第一個匹配項的索引位置;list.insert(index,obj):將對象插入列表;list.pop(obj=list[-1]):移除列表中的一個元素(默認(rèn)最后一個元素),并且返回該元素的值;list.remove(obj):移除列表中某個值的第一個匹配項;list.reverse():反向列表中元素;list.sort([func]):對原列表進(jìn)行排序。3.1Python基本數(shù)據(jù)類型元組Python的元組與列表類似,不同之處在于元組的元素不能修改,元組使用小括號,列表使用方括號,元組創(chuàng)建很簡單,只需要在括號中添加元素,并使用逗號隔開即可。1、創(chuàng)建元組tup1=('physics','chemistry',1997,2000)tup2=(1,2,3,4,5)tup3="a","b","c","d"#小括號可省去tup4=()#創(chuàng)建空元組tup5=(100,) #包含一個元素時,需要在元素后面添逗號來消除歧義3.1Python基本數(shù)據(jù)類型2、訪問元組元組可以使用下標(biāo)索引來訪問元組中的值?!臼纠?-7】
訪問元組元素。代碼3-7:ch3_7_Accessthetupleelement01tup=(1,2,3,4,5,6,7)02print(tup[4])03print(tup[2:4])【運(yùn)行結(jié)果】5(3,4)3.1Python基本數(shù)據(jù)類型3、修改元組元組中的元素值是不允許修改的,但可以對元組通過’+’進(jìn)行連接組合。
【示例3-8】
不允許修改元組。代碼3-8:ch3_8_Notmodifytuple01tup1=(12,34,56,78)02tup1[0]=100【運(yùn)行結(jié)果】TypeError:'tuple'objectdoesnotsupportitemassignment3.1Python基本數(shù)據(jù)類型3、修改元組元組中的元素值是不允許修改的,但可以對元組通過’+’進(jìn)行連接組合。
【示例3-9】
元組連接組合。代碼3-9:ch3_9_ConnectionofTuple01tup1=(12,34,56,78)02tup2=('abc','xyz')03print(tup1+tup2)【運(yùn)行結(jié)果】(12,34,56,78,'abc','xyz')
3.1Python基本數(shù)據(jù)類型4、刪除元組元組中的元素值是不允許刪除的,但可以使用del語句來刪除整個元組。
5、元組運(yùn)算符與列表一樣,元組之間可以使用+號和*號進(jìn)行運(yùn)算,即可進(jìn)行組合和復(fù)制6、元組索引、截取同列表一樣,元組也是一個序列,可以訪問元組中的指定位置的元素,也可以截取索引中的一段元素。3.1Python基本數(shù)據(jù)類型7、元組內(nèi)置函數(shù)Python元組包含了以下內(nèi)置函數(shù):cmp(tuple1,tuple2):比較兩個元組元素。len(tuple):計算元組元素個數(shù)。max(tuple):返回元組中元素最大值。min(tuple):返回元組中元素最小值。tuple(seq):將列表轉(zhuǎn)換為元組。8、元組與列表的異同元組(tuple)和列表(list)非常類似,獲取元素的方法和list是一樣的,但是元組一旦初始化就不能修改,因而沒有append(),insert()方法。由于元組不可變性,所以代碼更安全可靠。如果可能,能用元組代替列表就盡量用元組。列表、元組、字典與字符串字典Python字典是另一種可變?nèi)萜髂P?,且可存儲任意類型對象?、字典定義字典的每個鍵值(key:value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中,格式如下所示: d={key1:value1,key2:value2}鍵必須是唯一的,但值則不必。值可以取任何數(shù)據(jù)類型,但鍵必須是不可變的,如字符串、數(shù)字或元組。 dict={'abc':'123','xyz':'456'};3.1Python基本數(shù)據(jù)類型可通過鍵來訪問字典里的值,此時把相應(yīng)的鍵放入方括弧?!臼纠?-10】
訪問字典。代碼3-10:ch3_10_AccessofDict01dict={'abc':'123','xyz':'456'}02print(dict['abc'])03print(dict['xyz'])【運(yùn)行結(jié)果】1234563.1Python基本數(shù)據(jù)類型2、修改字典可向字典添加新內(nèi)容的方法是增加新的鍵/值對,修改或刪除已有鍵/值對?!臼纠?-11】
修改字典。代碼3-11:ch3_11_ModifyofDict01dict={'abc':'123','xyz':'456'}02dict['abc']='111'03dict['def']='789'04print(dict)【運(yùn)行結(jié)果】{'abc':'111','xyz':'456','def':'789'}3.1Python基本數(shù)據(jù)類型3、刪除字典元素可刪除字典里某一個元素,也可del命令刪除字典。4、字典鍵的特性不允許同一個鍵出現(xiàn)兩次。創(chuàng)建時如果同一個鍵被賦值兩次,后一個值會被記住。【示例3-12】
字典鍵的特性。代碼3-12:ch3_12_Characteristicsofthedictionarykey01dict={'abc':'123','xyz':'456'}02print(dict)03dict={'abc':'123','xyz':'456','abc':'789'}04print(dict)【運(yùn)行結(jié)果】{'abc':'123','xyz':'456'}{'abc':'789','xyz':'456'}3.1Python基本數(shù)據(jù)類型5、字典內(nèi)置函數(shù)及方法Python字典包含了以下內(nèi)置函數(shù):cmp(dict1,dict2):比較兩個字典元素;len(dict):計算字典元素個數(shù),即鍵的總數(shù);str(dict):輸出字典可打印的字符串表示;type(variable):返回輸入的變量類型,如果變量是字典就返回字典類型。Python字典包含了以下內(nèi)置方法:dict.clear():刪除字典內(nèi)所有元素;dict.copy():返回一個字典的淺復(fù)制;dict.fromkeys(seq[,val]):創(chuàng)建一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應(yīng)的初始值;列表、元組、字典與字符串dict.get(key,default=None):返回指定鍵的值,如果值不在字典中返回default值;dict.has_key(key):如果鍵在字典dict里返回true,否則返回false;dict.items():以列表返回可遍歷的(鍵,值)元組數(shù)組;dict.keys():以列表返回一個字典所有的鍵;dict.setdefault(key,default=None):和get()類似,但如果鍵不存在于字典中,將會添加鍵并將值設(shè)為default;dict.update(dict2):把字典dict2的鍵/值對更新到dict里;dict.values():以列表返回字典中的所有值;pop(key[,default]):刪除字典給定鍵key所對應(yīng)的值,返回值為被刪除的值。key值必須給出。否則,返回default值;popitem():隨機(jī)返回并刪除字典中的一對鍵和值。3.1Python基本數(shù)據(jù)類型字符串字符串是Python中最常用的數(shù)據(jù)類型。1、字符串的創(chuàng)建創(chuàng)建字符串很簡單,只要為變量分配一個值即可,使用引號('或")來創(chuàng)建字符串。var1=‘HelloWorld!’2、訪問字符串中的值Python不支持單字符類型,單字符也在Python也是作為一個字符串使用。Python訪問子字符串,可以使用方括號來截取字符串。3、Python轉(zhuǎn)義字符在需要在字符中使用特殊字符時,Python用反斜杠(\)轉(zhuǎn)義字符。3.1Python基本數(shù)據(jù)類型轉(zhuǎn)義字符描
述轉(zhuǎn)義字符描
述\續(xù)行符(在行尾時)\n換行\(zhòng)\反斜杠符號\v縱向制表符\’單引號\t橫向制表符轉(zhuǎn)義字符描
述轉(zhuǎn)義字符描
述\"雙引號\r回車\a響鈴\f換頁\b退格\oyy八進(jìn)制數(shù),yy代表字符\e轉(zhuǎn)義\xyy十六進(jìn)制數(shù),yy代表字符\000空\other其他字符以普通格式輸出3.1Python基本數(shù)據(jù)類型4、Python字符串運(yùn)算符下表實例字符串變量a值為字符串"Hello",字符串b變量值為"World"3.1Python基本數(shù)據(jù)類型5、Python的字符串內(nèi)建函數(shù)string.capitalize():把字符串的第一個字符大寫?!臼纠?-13】
第一個字符大寫。代碼3-13:ch3_13_Thefirstcharacteriscapitalized01string="abcdefabccbaAbcCba123"02print(string.capitalize())【運(yùn)行結(jié)果】Abcdefabccbaabccba1233.1Python基本數(shù)據(jù)類型5、Python的字符串內(nèi)建函數(shù)string.count(str,beg=0,end=len(string)):返回str在string里面出現(xiàn)的次數(shù),如果beg或者end指定則返回指定范圍內(nèi)str出現(xiàn)的次數(shù)?!臼纠?-14】
查找子串在串中出現(xiàn)的次數(shù)。代碼3-14:ch3_14_TimesofSubstring01string="abcdefabccbaAbcCba123"02print(string.count("abc",0,len(string)))【運(yùn)行結(jié)果】23.1Python基本數(shù)據(jù)類型5、Python的字符串內(nèi)建函數(shù)string.find(str,beg=0,end=len(string)):檢測str是否包含在string中,如果beg和end指定范圍,則檢查是否包含在指定范圍內(nèi),如果是返回開始的索引值,否則返回-1?!臼纠?-15】
檢測子串在串中的位置。代碼3-15:ch3_15_Detectsthepositionofthesubstringinthestring01string="abcdefabccbaAbcCba123"02print(string.find("cba"))【運(yùn)行結(jié)果】93.1Python基本數(shù)據(jù)類型5、Python的字符串內(nèi)建函數(shù)string.isalpha():如果string至少有一個字符并且所有字符都是字母則返回True,否則返回False?!臼纠?-16】
判定字符串是否均為字符。代碼3-16:ch3_16_DeterminesofCharacters01string="abcdefabccbaAbcCba123"02print(string.isalpha())【運(yùn)行結(jié)果】false3.1Python基本數(shù)據(jù)類型5、Python的字符串內(nèi)建函數(shù)string.isdecimal():如果string只包含十進(jìn)制數(shù)字則返回True否則返回False。string.isdigit():如果string只包含數(shù)字則返回True否則返回False。string.islower():如果string中包含至少一個區(qū)分大小寫的字符,并且所有這些(區(qū)分大小寫的)字符都是小寫,則返回True,否則返回False。3.1Python基本數(shù)據(jù)類型max(string):返回字符串string中最大的字母?!臼纠?-17】
返回字符串中最大的字母。代碼3-17:ch3_17_Returnsthelargestletter01string="abcdefabccbaAbcCba123"02print(max(string))【運(yùn)行結(jié)果】f3.1Python基本數(shù)據(jù)類型min(string):返回字符串string中最小的字母。string.rfind(str,beg=0,end=len(string)):類似于find()函數(shù),不過是從右邊開始查找。string.rstrip():刪除string字符串末尾的空格。string.split(str="",num=string.count(str)):以str為分隔符切片string,如果num有指定值,則僅分隔num個子字符串?!臼纠?-18】
字符串切片。代碼3-18:ch3_18_SlicesofString01string="abcdefabccbavAbcCba123"02print(string.split(""))【運(yùn)行結(jié)果】['abcdef','abc','cbavAbc','Cba','123']3.1Python基本數(shù)據(jù)類型string.swapcase():翻轉(zhuǎn)string中的大小寫?!臼纠?-19】
翻轉(zhuǎn)string中的大小寫字母。代碼3-19:ch3_19_Flipsthecase01string="abcdefabccbavAbcCba123"02print(string.swapcase())【運(yùn)行結(jié)果】ABCDEFABCCBAVaBCcBA123string.upper():轉(zhuǎn)換string中的小寫字母為大寫。【示例3-20】
轉(zhuǎn)換串中的小寫字母為大寫。代碼3-20:ch3_20_Convertslowercaseletterstouppercase01string="abcdefabccbavAbcCba123"02print(string.upper())【運(yùn)行結(jié)果】ABCDEFABCCBAVABCCBA1233.1Python基本數(shù)據(jù)類型Set(集合)集合由一系列無序的、不重復(fù)的數(shù)據(jù)項組成。與數(shù)學(xué)中的集合概念相同,集合中每個元素都是唯一的。同時,集合是無序,每次輸出時元素的排序可能都不相同。集合使用大括號,形式上和字典類似,但數(shù)據(jù)項不是成對的。(1)創(chuàng)建集合。創(chuàng)建集合可以使用大括號{}或者set()函數(shù),但創(chuàng)建一個空集合必須用set()函數(shù)而不能用{},因為空的大括號{}創(chuàng)建的是空字典。Python還可以使用列表來創(chuàng)建集合,此時列表中的數(shù)據(jù)項直接作為集合的元素。生成的集合和原列表相比,數(shù)據(jù)項順序有可能不同,并且會去除重復(fù)數(shù)據(jù)項。3.1Python基本數(shù)據(jù)類型創(chuàng)建集合。【示例3-21】
創(chuàng)建集合。代碼3-21:ch3_21_Createacollection01st={'apple','orange','apple','pear','orange','banana’}02print(st)【運(yùn)行結(jié)果】{'apple','orange','pear','banana'}3.1Python基本數(shù)據(jù)類型2.集合的主要運(yùn)算
a-b:集合a中包含而集合b中不包含的元素,即差運(yùn)算。
a|b:集合a或b中包含的所有元素,即或運(yùn)算。
a&b:集合a和b中都包含了的元素,即交運(yùn)算。
a^b:不同時包含于a和b的元素,即對稱差運(yùn)算。3.1Python基本數(shù)據(jù)類型3.集合常用內(nèi)置方法
add():為集合添加元素。
clear():移除集合中的所有元素。
difference():返回多個集合的差集。
difference_update():移除集合中的元素,該元素在指定的集合中也存在。
discard():刪除集合中指定的元素。
intersection():返回集合的交集賦值到新集合。3.1Python基本數(shù)據(jù)類型
intersection_update():返回集合的交集更新源集合。
isdisjoint():判斷兩個集合是否包含相同的元素,如果沒有返回True,否則返回False。
issubset():判斷指定集合是否為該方法參數(shù)集合的子集。
issuperset():判斷該方法的參數(shù)集合是否為指定集合的子集。
pop():隨機(jī)移除元素。
remove():移除指定元素。
union():返回兩個集合的并集。3.1Python基本數(shù)據(jù)類型
update():給集合添加元素?!臼纠?-22】
集合運(yùn)算代碼3-22:ch3_22_OperationofSet01s={1,2,3,4,5}02s2={3,4,5,6,7}03s=s&s204s=s|s205s=s-s206s=s^s207print('result=',s)【運(yùn)行結(jié)果】result={3,4,5,6,7}02常用數(shù)據(jù)處理模塊PARTTWO3.2常用數(shù)據(jù)處理模塊NumPyNumPy是著名的Pythom數(shù)據(jù)處理模塊之一,常用于高性能計算,在機(jī)器學(xué)習(xí)方面還有一個重要作用,即作為在算法之間傳遞數(shù)據(jù)的容器。NumPy提供了兩種基本的對象,即ndarray(N-dimensionalArray)對象和ufunc對象(UniversalFunction,通用函數(shù)對象)。ndarray是具有矢量算術(shù)運(yùn)算和復(fù)雜廣播能力的快速且節(jié)省空間的多維數(shù)組,ufunc則提供了對數(shù)組進(jìn)行快速運(yùn)算的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)。3.2常用數(shù)據(jù)處理模塊ndarray的創(chuàng)建與索引Python內(nèi)置了一個array模塊,array和list不同,它直接保存數(shù)值,類似于C語言中的一維數(shù)組。但它不支持多維數(shù)組功能,且沒有配套對應(yīng)的計算函數(shù)。因此不適合做數(shù)值運(yùn)算?;贜umPy的ndarray在極大程度上改善了Python內(nèi)置的array模塊的不足,下面重點(diǎn)來介紹ndarray的創(chuàng)建與索引。(1)創(chuàng)建ndarray。NumPy比原生Python支持的數(shù)據(jù)類型更豐富。為了能夠更容易地確定一個ndarray所需的存儲空間,同一個ndarray中所有元素的類型必須是一致的。3.2常用數(shù)據(jù)處理模塊NumPy提供了多種創(chuàng)建ndarray的方式,如array函數(shù)可以創(chuàng)建一維或多維ndarray。其語法格式如下:numpy.array(object)array函數(shù)的常用參數(shù)及說明如下:object:接收array、list、tuple等,表示用于創(chuàng)建ndarray的數(shù)據(jù)。無默認(rèn)值。3.2常用數(shù)據(jù)處理模塊【示例3-23】
創(chuàng)建一維與二維數(shù)組,并顯示其屬性值。代碼3-23:ch3_23_Createarrays01importnumpyasnp02a1=np.array([1,2,3,4,3,2,6,8])03print(a1)04a2=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])05print(a2)06print(a1.ndim)07print(a2.size)08print(a2.shape)【運(yùn)行結(jié)果】[12343268][[1234][5678][9101112]]112(3,4)3.2常用數(shù)據(jù)處理模塊2.其他函數(shù)。針對一些特殊的ndarray,NumPy提供了其他創(chuàng)建函數(shù)。
arrage:創(chuàng)建等差數(shù)列(指定開始值、終值和步長)。
linsapce:創(chuàng)建等差數(shù)列(指定開始值、終值和元素個數(shù))。
logsapce(a,b,c):創(chuàng)建等比數(shù)列,從10a到10b共c個等比數(shù)列元素,基為10。
logsapce(a,b,c,base=d):創(chuàng)建等比數(shù)列,從da到db共c個等比數(shù)列元素,基為d。
zeros:創(chuàng)建全為0的矩陣。
eye:創(chuàng)建單位矩陣(對角線元素為1,其余元素為0)。
diag:創(chuàng)建對角矩陣(對角線元素為指定值,其余元素為0)。
ones:創(chuàng)建值全為1的矩陣。3.2常用數(shù)據(jù)處理模塊2.其他函數(shù)。針對一些特殊的ndarray,NumPy提供了其他創(chuàng)建函數(shù)。
arrage:創(chuàng)建等差數(shù)列(指定開始值、終值和步長)。
linsapce:創(chuàng)建等差數(shù)列(指定開始值、終值和元素個數(shù))。
logsapce(a,b,c):創(chuàng)建等比數(shù)列,從10a到10b共c個等比數(shù)列元素,基為10。
logsapce(a,b,c,base=d):創(chuàng)建等比數(shù)列,從da到db共c個等比數(shù)列元素,基為d。
zeros:創(chuàng)建全為0的矩陣。
eye:創(chuàng)建單位矩陣(對角線元素為1,其余元素為0)。
diag:創(chuàng)建對角矩陣(對角線元素為指定值,其余元素為0)。
ones:創(chuàng)建值全為1的矩陣?!臼纠?-24】
創(chuàng)建ndarray數(shù)據(jù)對象。代碼3-24:ch3_24_Createanndarraydataobject3.2常用數(shù)據(jù)處理模塊01importnumpyasnp02a1=np.arange(1,100,5) #此處的5表示步長為503print(a1)04a2=np.linspace(1,100,5) #此處的5表示生成5個元素05print(a2)06a3=np.logspace(1,3,2)07print(a3)08a4=np.logspace(0,9,10,base=2) #從1到512創(chuàng)建10個元素的等比數(shù)列09print(a4)10a5=np.zeros((3,4))11print(a5)12a6=np.eye(5)13print(a6)14a7=np.diag([1,2,3,4])15print(a7)16a8=np.ones((2,3))17print(a8)3.2常用數(shù)據(jù)處理模塊【運(yùn)行結(jié)果】[16111621263136414651566166717681869196][1.25.7550.575.25100.][10.1000.][1.2.4.8.16.32.64.128.256.512.][[0.0.0.0.][0.0.0.0.][0.0.0.0.]][[1.0.0.0.0.][0.1.0.0.0.][0.0.1.0.0.][0.0.0.1.0.][0.0.0.0.1.]][[1000][0200][0030][0004]][[1.1.1.][1.1.1.]]3.2常用數(shù)據(jù)處理模塊3.ndarray的索引與切片。索引與切片是ndarray使用頻率最高的操作。相較于list,ndarray的索引與切片在功能上更加豐富,在形式上更加多樣。ndarray的高效率在很大程度上歸功于其索引的易用性。生成一維ndarray的索引和切片的方法很簡單,與list的索引和切片一致。多維ndarray的每一個維度都有一個索引,各個維度的索引之間以逗號隔開。示例見代碼3-25:ch3_25_Indexesandslicesofone-dimensionalndarray3.2常用數(shù)據(jù)處理模塊【示例3-25】
一維ndarray的索引與切片。代碼3-25:ch3_25_Indexesandslicesofone-dimensionalndarray01importnumpyasnp02a=np.arange(10)03print(a)04print(a[5])05print(a[3:6])06print(a[:-1])07print(a[5:1:-2])【運(yùn)行結(jié)果】[0123456789]5[345][012345678][53]3.2常用數(shù)據(jù)處理模塊【例3-26】多維ndarray的索引與切片。代碼3-26:ch3_26_Indexingandslicingofmultidimensionalndarray01a=np.array([[1,2,3,4,5],[4,5,6,7,8],[6,7,8,9,10]])02print(a)03print(a[0,3:5])04print(a[1:,2:])05print(a[:,2:])【運(yùn)行結(jié)果】[[12345][45678][678910]][45][[678][8910]][[345][678][8910]]3.2常用數(shù)據(jù)處理模塊ndarray的基本操作ndarray作為NumPy中最常用的數(shù)據(jù)類型,其操作靈活、多樣。ndarray的基本操作,包括設(shè)置ndarray的形狀、展平ndarray、組合ndarray、分割ndarray及ndarray的排序與搜索等。(1)設(shè)置ndarray的形狀。
使用reshape方法。NumPy中的reshape方法用于改變ndarray的形狀。reshape方法僅改變原始數(shù)據(jù)的形狀,不改變原始數(shù)據(jù)的值。
使用resize方法。size方法類似于reshape方法的功能,但resize方法會直接作用于所操作的ndarray。設(shè)置shape屬性。通過修改ndarray的shape屬性也可以實現(xiàn)ndarray形狀的改變。此方法會直接作用于所操作的ndarray。3.2常用數(shù)據(jù)處理模塊設(shè)置數(shù)組的形狀?!臼纠?-27】
設(shè)置數(shù)組的形狀。代碼3-27:ch3_27_Setstheshapeofthearray01importnumpyasnp02a=np.arange(12)03print("生成一個一維數(shù)組:")04print(a)05a=a.reshape(2,6)06print("將數(shù)組形狀設(shè)置為2*6:")07print(a)08a.resize(3,4)09print("再次將數(shù)組形狀設(shè)置為3*4:")10print(a)11a.shape=(4,3)12print("重新設(shè)置a的形狀為4*3:")13print(a)3.2常用數(shù)據(jù)處理模塊設(shè)置數(shù)組的形狀。【運(yùn)行結(jié)果】生成一個一維數(shù)組:[01234567891011]將數(shù)組形狀設(shè)置為2*6:[[012345][67891011]]再次將數(shù)組形狀設(shè)置為3*4:[[0123][4567][891011]]重新設(shè)置a的形狀為4*3:[[012][345][678][91011]]3.2常用數(shù)據(jù)處理模塊展平ndarray。【示例3-28】
對數(shù)組進(jìn)行展平。使用ravel方法。展平是指將多維ndarray轉(zhuǎn)換成一維ndarray的操作過程,是一種特殊的ndarray形狀變換。在NumPy中,可以使用ravel方法完成ndarray的橫向展平。使用flatten方法。flatten方法也可以展平ndarray。與ravel方法的區(qū)別是,flatten方法可以選擇橫向或縱向展平。當(dāng)參數(shù)為'F'時為縱向展平。示例見代碼3-28:ch3_28_Flattensthearray3.2常用數(shù)據(jù)處理模塊【示例3-28】
對數(shù)組進(jìn)行展平。代碼3-28:ch3_28_Flattensthearray01importnumpyasnp02a=np.arange(12).reshape(3,4)03print("生成一個3*4的數(shù)組:")04print(a)05b=a.ravel()06print("對數(shù)組按行進(jìn)行展平:")07print(b)08c=a.flatten('F')09print("對數(shù)組按列進(jìn)行展平:")10print(c)3.2常用數(shù)據(jù)處理模塊【運(yùn)行結(jié)果】生成一個3*4的數(shù)組:[[0123][4567][891011]]對數(shù)組按行進(jìn)行展平:[01234567891011]對數(shù)組按列進(jìn)行展平:[04815926103711]3.2常用數(shù)據(jù)處理模塊排序與搜索(1)排序。NumPy提供的排序方式主要可以概括為直接排序和間接排序兩種。直接排序指對數(shù)值直接進(jìn)行排序;間接排序指根據(jù)一個或多個鍵對數(shù)據(jù)集進(jìn)行排序。NumPy提供的常用排序函數(shù)有sort和argsort函數(shù)。使用sort函數(shù)。numpy.sort()函數(shù)返回輸入數(shù)組的排序副本。函數(shù)格式如下:numpy.sort(a,axis,kind,order)參數(shù)說明:a:要排序的數(shù)組。axis:沿著它排序數(shù)組的軸,axis=0按列排序,axis=1按行排序,默認(rèn)按行排序。kind:默認(rèn)為'quicksort'(快速排序)。選項有'quicksort'(快速排序)、'mergesort'(歸并排序)、'heapsort'(堆排序)。order:如果數(shù)組包含字段,則它是要排序的字段。示例數(shù)組排序見代碼3-29:ch3_29_SortofArray3.2常用數(shù)據(jù)處理模塊【示例3-29】
數(shù)組排序。代碼3-29:ch3_29_SortofArray01importnumpyasnp02a=np.array([[1,21,3,42],[8,7,6,15],[9,54,11,12]])03print(a)04print('調(diào)用sort()函數(shù):')05print(np.sort(a))06print('按列排序:')07print(np.sort(a,axis=0))08#在sort函數(shù)中排序字段09dt=np.dtype([('name','S10'),('age',int)])10a=np.array([("raju",21),("anil",25),("ravi",17),("amar",27)],dtype=dt)11print('我們的數(shù)組是:')12print(a)13print('按name排序:')14print(np.sort(a,order='name'))15print('按age排序:')16print(np.sort(a,order='age'))3.2常用數(shù)據(jù)處理模塊【運(yùn)行結(jié)果】[[121342][87615][9541112]]調(diào)用sort()函數(shù):[[132142][67815][9111254]]按列排序:[[17312][821615][9541142]]我們的數(shù)組是:[(b'raju',21)(b'anil',25)(b'ravi',17)(b'amar',27)]按name排序:[(b'amar',27)(b'anil',25)(b'raju',21)(b'ravi',17)]按age排序:[(b'ravi',17)(b'raju',21)(b'anil',25)(b'amar',27)]3.2常用數(shù)據(jù)處理模塊搜索NumPy提供了一些在ndarray內(nèi)實施搜索的函數(shù),包括用于求最大值、最小值以及滿足給定條件的元素的函數(shù)。使用argmax函數(shù)和argmin函數(shù):返回最大值和最小值的元素的索引。使用where函數(shù):numpy.where()函數(shù)返回輸入數(shù)組中滿足給定條件的元素的索引。使用extract函數(shù):numpy.extract()函數(shù)根據(jù)某個條件從數(shù)組中抽取元素,返回滿足條件的元素。示例抽取滿足條件的元素見代碼3-30:ch3_30_ExtractofElements3.2常用數(shù)據(jù)處理模塊【示例3-30】
抽取滿足條件的元素。代碼3-30:ch3_30_ExtractofElements01importnumpyasnp02x=np.arange(9).reshape(3,3)03print('我們的數(shù)組是:')04print(x)05print('大于3的元素的索引:')06y=np.where(x>3)07print(y)08print('使用這些索引來獲取滿足條件的元素:')09print(x[y])10print("返回滿足條件的元素:")11condition=np.mod(x,2)==012print(np.extract(condition,x))3.2常用數(shù)據(jù)處理模塊【運(yùn)行結(jié)果】我們的數(shù)組是:[[012][345][678]]大于3的元素的索引:(array([1,1,2,2,2],dtype=int64),array([1,2,0,1,2],dtype=int64))使用這些索引來獲取滿足條件的元素:[45678]返回滿足條件的元素:[02468]
3.2常用數(shù)據(jù)處理模塊常用的ufunc運(yùn)算常用的ufunc運(yùn)算有算術(shù)運(yùn)算、三角運(yùn)算、集合運(yùn)算、比較運(yùn)算、邏輯運(yùn)算和統(tǒng)計運(yùn)算。(1)算術(shù)運(yùn)算。ufunc支持算術(shù)運(yùn)算,有運(yùn)算符和函數(shù)兩種方式,和數(shù)值運(yùn)算的使用方式一樣,但輸入ndarray時,必須具有相同的形狀或符合ndarray廣播規(guī)則,如表所示。運(yùn)
算
符函數(shù)格式說
明示
例x=numpy.array([1,2,3])y=numpy.array([4,5,6])+add(x,y)x與y之和x+y=[578]-subtract(x,y)x與y之差x-y=[-3-3-3]*multiply(x,y)x與y之積x*y=[41018]/divide(x,y)x與y之商x/y=[0.250.40.5]**power(x,y)x與y之冪x**y=[132729]3.2常用數(shù)據(jù)處理模塊常用數(shù)學(xué)運(yùn)算函數(shù)。常用數(shù)學(xué)運(yùn)算函數(shù)如表所示函數(shù)格式說
明函數(shù)格式說
明negative(x)返回各元素的相反數(shù)exp(x)求e的各元素次冪absolute(x)返回各元素的絕對值sqrt(x)返回各元素的平方根fabs(x)返回各元素的絕對值(浮點(diǎn)型和整型)curt(x)返回各元素的立方根rint(x)返回各元素最近的整數(shù)reciprocal(x)返回各元素的倒數(shù)sign(x)返回各元素的符號conj(x)返回各元素的共軛復(fù)數(shù)log(x)返回各元素的自然對數(shù)log2(x)返回各元素以2為底的對數(shù)3.2常用數(shù)據(jù)處理模塊常用數(shù)學(xué)運(yùn)算函數(shù)函數(shù)格式說
明函數(shù)格式說
明negative(x)返回各元素的相反數(shù)exp(x)求e的各元素次冪absolute(x)返回各元素的絕對值sqrt(x)返回各元素的平方根fabs(x)返回各元素的絕對值(浮點(diǎn)型和整型)curt(x)返回各元素的立方根rint(x)返回各元素最近的整數(shù)reciprocal(x)返回各元素的倒數(shù)sign(x)返回各元素的符號conj(x)返回各元素的共軛復(fù)數(shù)log(x)返回各元素的自然對數(shù)log2(x)返回各元素以2為底的對數(shù)3.2常用數(shù)據(jù)處理模塊常用統(tǒng)計運(yùn)算函數(shù)函數(shù)格式說
明函數(shù)格式說
明sum(x)返回x的元素之和std(x)返回標(biāo)準(zhǔn)差ptp(x)返回x的元素極差var(x)返回方差mean(x)返回x的中位數(shù)min(x)返回最小值percentile(x,y)返回x內(nèi)元素的對應(yīng)y元素的百分位數(shù)max(x)返回最大值3.2常用數(shù)據(jù)處理模塊線性代數(shù)函數(shù)庫linalgNumPy提供了線性代數(shù)函數(shù)庫linalg,該庫包含了線性代數(shù)所需的主要功能。numpy.dot()對于兩個一維的數(shù)組,計算的是這兩個數(shù)組對應(yīng)下標(biāo)元素的乘積之和,即向量的內(nèi)積;對于二維數(shù)組,計算的是兩個數(shù)組的矩陣乘積。numpy.dot(a,b)參數(shù)說明:a,b均為數(shù)組。numpy.matmu()函數(shù)返回兩個數(shù)組的矩陣乘積。numpy.linalg.det()函數(shù)計算輸入矩陣的行列式。numpy.linalg.solve()函數(shù)給出了矩陣形式的線性方程的解。numpy.linalg.inv()函數(shù)計算矩陣的乘法逆矩陣。3.2常用數(shù)據(jù)處理模塊【示例3-31】
計算矩陣乘積。代碼3-31:ch3_31_ProductofMatrix01importnumpyasnp02a=[[1,2],[3,4]]03b=[[5,6],[7,8]]04print(np.matmul(a,b))【運(yùn)行結(jié)果】[[1922][4350]]3.2常用數(shù)據(jù)處理模塊PandasPandas是基于NumPy創(chuàng)建的,為Python編程語言提供了高性能的、易于使用的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具。Pandas應(yīng)用領(lǐng)域廣泛,包括金融、經(jīng)濟(jì)、統(tǒng)計等學(xué)術(shù)和商業(yè)領(lǐng)域。Pandas提供了眾多類,以滿足不同的使用需求,主要有Series和DataFrame。Series:基本數(shù)據(jù)結(jié)構(gòu),一維標(biāo)簽數(shù)組,能夠保存任何數(shù)據(jù)類型。DataFrame:基本數(shù)據(jù)結(jié)構(gòu),一般為二維數(shù)組。3.2常用數(shù)據(jù)處理模塊SeriesSeries由一組數(shù)據(jù)以及一組與之對應(yīng)的數(shù)據(jù)標(biāo)簽(即索引)組成。Series對象可以視為一個NumPy的ndarray。因此許多NumPy庫函數(shù)可以作用于Series。(1)Series對象創(chuàng)建。Series數(shù)據(jù)對象可通過ndarray、dict、list等數(shù)據(jù)創(chuàng)建對象。格式如下:pandas.Series(data,index,dtype,name)參數(shù)說明:data:一組數(shù)據(jù)(ndarray類型)。index:數(shù)據(jù)索引標(biāo)簽,如果不指定,則默認(rèn)從0開始。dtype:數(shù)據(jù)類型,默認(rèn)會自己判斷。name:設(shè)置名稱。3.2常用數(shù)據(jù)處理模塊Series示例創(chuàng)建Series數(shù)據(jù)對象見代碼3-32:ch3_32_CreateofSeriesSeries數(shù)據(jù)訪問。Series的數(shù)據(jù)訪問類似于字典數(shù)據(jù)的操作,通過數(shù)據(jù)的索引訪問數(shù)據(jù)。示例Series數(shù)據(jù)訪問見代碼3-33:ch3_33_AccessofSeriesdata3.2常用數(shù)據(jù)處理模塊Series【示例3-32】
創(chuàng)建Series數(shù)據(jù)對象。代碼3-32:ch3_32_CreateofSeries01importnumpyasnp02importpandasaspd03print(pd.Series(np.arange(5),index=['a','b','c','d','e'])) #由ndarray創(chuàng)建Series數(shù)據(jù)對象04print(pd.Series({"y":84,"h":94,"w":96})) #由dict創(chuàng)建Series數(shù)據(jù)對象05print(pd.Series([10,20,30],index=['a','b','c'])) #由list創(chuàng)建Series數(shù)據(jù)對象3.2常用數(shù)據(jù)處理模塊Series【運(yùn)行結(jié)果】a0b1c2d3e4dtype:int32y84h94w96dtype:int64a10b20c30dtype:int643.2常用數(shù)據(jù)處理模塊SeriesSeries數(shù)據(jù)訪問。Series的數(shù)據(jù)訪問類似于字典數(shù)據(jù)的操作,通過數(shù)據(jù)的索引訪問數(shù)據(jù)。【示例3-33】Series數(shù)據(jù)訪問。代碼3-33:ch3_33_AccessofSeriesdata01importnumpyasnp02importpandasaspd03data=np.arange(5)04s=pd.Series(data,index=['a','b','c','d','e'])05print(s)06print(s['b'])07s['c']=5008print(s)3.2常用數(shù)據(jù)處理模塊Series【運(yùn)行結(jié)果】a0b1c2d3e4dtype:int321a0b1c50d3e4dtype:int323.2常用數(shù)據(jù)處理模塊DataFrameDataFrame是Pandas的基本數(shù)據(jù)結(jié)構(gòu)之一,既有行索引,又有列索引,它可以被看作由Series組成的字典(共同用一個索引)。(1)創(chuàng)建DataFrame數(shù)據(jù)對象。DataFrame構(gòu)造方法如下:pandas.DataFrame(data,index,columns)參數(shù)說明:data:一組數(shù)據(jù)(ndarray、series,map,lists,dict等類型)。index:索引值,或者可以稱為行標(biāo)簽。columns:列標(biāo)簽,默認(rèn)為RangeIndex(0,1,2,…,n)。創(chuàng)建DataFrame的方法很多,常見的一種方法是傳入一個由等長list或ndarray組成的dict。若沒有傳入columns參數(shù),則傳入的dict的鍵會被當(dāng)作列名。3.2常用數(shù)據(jù)處理模塊DataFrame【示例3-34】
創(chuàng)建DataFrame數(shù)據(jù)對象。代碼3-34:ch3-34_CreateofDataFrame01importnumpyasnp02importpandasaspd03dict1={'col1':[0,1,2,3],'col2':[4,5,6,7]}04print(pd.DataFrame(dict1))05list1=[[30,45],[48,92],[25,94]]06print(pd.DataFrame(list1,index=['a','b','c'],columns=['A','B']))【運(yùn)行結(jié)果】col1col2004115226337ABa3045b4892c25943.2常用數(shù)據(jù)處理模塊DataFrame訪問DataFrame數(shù)據(jù)。訪問DataFrame數(shù)據(jù)一般采用雙索引方式。head和tail方法可用于訪問DataFrame前n行和后n行數(shù)據(jù),默認(rèn)返回5行數(shù)據(jù)。更新DataFrame數(shù)據(jù):類似于Series,更新DataFrame列采用賦值的方法,對指定列賦值即可。插入列:可以采用賦值的方法。3.2常用數(shù)據(jù)處理模塊
刪除列和行:刪除列的方法有多種,如del、pop、drop等,常用的是drop方法,它可以刪除行或者列,其基本語法格式如下:DataFrame.drop(labels,axis=0,level=None)drop方法的常用參數(shù)及說明如下:labels:表示要刪除的行或列的標(biāo)簽,無默認(rèn)值。axis:接收0或1,表示執(zhí)行操作的軸向,0表示刪除行,1表示刪除列,默認(rèn)值為0。level:接收int或者索引名,表示索引級別,默認(rèn)為None。3.2常用數(shù)據(jù)處理模塊【示例3-35】
增、刪、改DataFrame數(shù)據(jù)。代碼3-35:ch3_35_AlterofDataFrame01importpandasaspd02dict={'y':[90,64,57,84,85,74],'a':[84,85,96,85,96,37],'n':[75,83,93,75,49,85],\03'g':[88,82,75,74,98,35]}04d=pd.DataFrame(dict)05d['y']=[18,29,37,47,56,66]06d['h']=[74,75,38,49,75,29]07d.drop(['y','h'],axis=1,inplace=True)08print(d)【運(yùn)行結(jié)果】
ang0847588185838229693753857574496499853785353.2常用數(shù)據(jù)處理模塊Matplotlib庫Matplotlib是一個Python的2D繪圖庫,通過Matplotlib,便可以生成各類圖形,如直方圖、條形圖、散點(diǎn)圖等。當(dāng)然Matplotlib也是可以畫出3D圖形的,這時就需要安裝更多的擴(kuò)展模塊。Matplotlib通常與NumPy庫和Pandas庫結(jié)合起來使用。3.2常用數(shù)據(jù)處理模塊Matplotlib庫pyplot模塊Matplotlib繪圖的各種函數(shù)包含在pyplot模塊中。(1)繪圖類型。atplotlib可繪制的圖像風(fēng)格多樣,主要有:bar():繪制柱狀圖。barh():繪制水平柱狀圖。boxplot():繪制箱型圖。hist():繪制直方圖。his2d():繪制2D直方圖。pie():繪制餅狀圖。scatter():繪制x與y的散點(diǎn)圖。3.2常用數(shù)據(jù)處理模塊Matplotlib庫image函數(shù)。imread():從文件中讀取圖像的數(shù)據(jù)并形成數(shù)組。imsave():將數(shù)組另存為圖像文件。imshow():在數(shù)軸區(qū)域內(nèi)顯示圖像。axis函數(shù)。axes():在畫布(figure)中添加軸。text():向軸添加文本。title():設(shè)置當(dāng)前軸的標(biāo)題。xlabel():設(shè)置x軸標(biāo)簽。ylabel():設(shè)置y軸的標(biāo)簽。3.2常用數(shù)據(jù)處理模塊Matplotlib庫figure函數(shù)。figtext():在畫布上添加文本。figure():創(chuàng)建一個新畫布。show():顯示數(shù)字。savefig():保存當(dāng)前畫布。close():關(guān)閉畫布窗口。3.2常用數(shù)據(jù)處理模塊各類風(fēng)格圖形的繪制(1)柱狀圖。柱狀圖是一種用矩形柱來表示數(shù)據(jù)分類的圖表,柱狀圖可以垂直繪制,也可以水平繪制,它的高度與其所表示的數(shù)值成正比關(guān)系。其語法格式如下:ax.bar(x,height,width,bottom,align)示例利用bar()繪制柱狀圖見代碼3-36:ch3_36_DisplayBargraph3.2常用數(shù)據(jù)處理模塊【例3-36】利用bar()繪制柱狀圖。代碼3-36:ch3_36_DisplayBargraph01importmatplotlib.pyplotasplt02plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標(biāo)簽03plt.rcParams['axes.unicode_minus']=False #用來正常顯示負(fù)號04month=['一月','二月','三月','四月','五月']05sale_amounts=[27,90,20,111,23]06month_index=range(len(month))07fig=plt.figure()08ax1=fig.add_subplot(1,1,1)09ax1.bar(month_index,sale_amounts,align='center',color='darkblue')10ax1.xaxis.set_ticks_position('bottom')11ax1.yaxis.set_ticks_position('left')12plt.xticks(month_index,month,rotation=0,fontsize='small')13plt.xlabel('月份')14plt.ylabel('銷售額')15plt.title('每個月的銷售額')16plt.show()3.2常用數(shù)據(jù)處理模塊【例3-36】利用bar()繪制柱狀圖?!具\(yùn)行結(jié)果】3.2常用數(shù)據(jù)處理模塊各類風(fēng)格圖形的繪制(2)餅狀圖。餅狀圖顯示一個數(shù)據(jù)系列中各項目占項目總和的百分比。示例利用pie()繪制餅狀圖見代碼3-37:ch3_37_DrawofPie【示例3-37】
利用pie()繪制餅狀圖。代碼3-37:ch3_37_DrawofPie01frommatplotlibimportpyplotasplt02importnumpyasnp03plt.rcParams["font.sans-serif"]=["SimHei"]04plt.rcParams["axes.unicode_minus"]=False05fig=plt.figure()06ax=fig.add_subplot(1,1,1)07ax.axis('equal')#使得X/Y軸的間距相等08langs=['數(shù)學(xué)','程序設(shè)計','外語','數(shù)據(jù)庫','機(jī)器人']09students=[24,45,27,35,39]10ax.pie(students,labels=langs,autopct='%1.5f%%')#繪制餅狀圖11plt.show()3.2常用數(shù)據(jù)處理模塊【示例3-37】
利用pie()繪制餅狀圖。【運(yùn)行結(jié)果】3.2常用數(shù)據(jù)處理模塊各類風(fēng)格圖形的繪制(3)折線圖。Matplotlib并沒有直接提供繪制折線圖的函數(shù),而是借助散點(diǎn)函數(shù)繪制折線圖?!纠?-38】繪制折線圖。代碼3-38:ch3_38_DrawofPlot01
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年橋梁施工工藝與耐久性關(guān)系分析
- 2026年建筑電氣設(shè)計中的水電氣協(xié)調(diào)
- 貨輪消防安全知識培訓(xùn)課件
- 貨物司機(jī)安全培訓(xùn)課件
- 腫瘤靶向治療研究進(jìn)展與展望
- 2026年湖南水利水電職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試參考題庫帶答案解析
- 人工智能在醫(yī)學(xué)影像分析與診斷中的應(yīng)用
- 醫(yī)療器械維修人員的禮儀素養(yǎng)
- 2026年河南經(jīng)貿(mào)職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試備考題庫有答案解析
- 醫(yī)療健康保險產(chǎn)品設(shè)計與應(yīng)用
- 河道清淤作業(yè)安全組織施工方案
- 2026年1月1日起施行的《兵役登記工作規(guī)定》學(xué)習(xí)與解讀
- GB/T 46831-2025塑料聚丙烯(PP)等規(guī)指數(shù)的測定低分辨率核磁共振波譜法
- 2025侵襲性肺真菌病指南解讀
- 蘇州工業(yè)園區(qū)領(lǐng)軍創(chuàng)業(yè)投資有限公司招聘備考題庫新版
- 葡萄種植課件
- 律師事務(wù)所保密制度和保密措施
- 粉絲群體特征分析-洞察與解讀
- 2025年國家開放大學(xué)《公共經(jīng)濟(jì)學(xué)》期末考試備考試題及答案解析
- NY/T 682-2003畜禽場場區(qū)設(shè)計技術(shù)規(guī)范
- GB/T 33725-2017表殼體及其附件耐磨損、劃傷和沖擊試驗
評論
0/150
提交評論