《Python金融數(shù)據(jù)分析與挖掘(微課版)》全套教學(xué)課件_第1頁(yè)
《Python金融數(shù)據(jù)分析與挖掘(微課版)》全套教學(xué)課件_第2頁(yè)
《Python金融數(shù)據(jù)分析與挖掘(微課版)》全套教學(xué)課件_第3頁(yè)
《Python金融數(shù)據(jù)分析與挖掘(微課版)》全套教學(xué)課件_第4頁(yè)
《Python金融數(shù)據(jù)分析與挖掘(微課版)》全套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩380頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章Python基礎(chǔ)Python基本數(shù)據(jù)類(lèi)型Python基本數(shù)據(jù)結(jié)構(gòu)Python基本數(shù)據(jù)結(jié)構(gòu)之間的比較全套可編輯PPT課件

Python基本數(shù)據(jù)類(lèi)型第1章

電子表格數(shù)據(jù)、新聞文本數(shù)據(jù)等屬于常見(jiàn)的數(shù)據(jù)集,它們是由一個(gè)個(gè)的數(shù)值和文本組成的。單個(gè)數(shù)值和文本,即是構(gòu)成數(shù)據(jù)集的基本單元。Python基本數(shù)據(jù)類(lèi)型第1章

在Python中,將構(gòu)成數(shù)據(jù)集的基本單元:數(shù)值和文本,定義為基本數(shù)據(jù)類(lèi)型,即數(shù)值和字符串。n1=2#整型n2=1.3#浮點(diǎn)n3=float(2)#轉(zhuǎn)換為浮點(diǎn)類(lèi)型t=True#布爾真f=False#布爾假n4=t==1n5=f==0s1='1234's2='中國(guó)'s3='''helloword!'''s4='ILikepython’

Python基本數(shù)據(jù)類(lèi)型,即對(duì)單個(gè)數(shù)值和文本進(jìn)行了定義。然而,真實(shí)數(shù)據(jù)集是由多個(gè)數(shù)值或多個(gè)文本組成的,其數(shù)據(jù)集形態(tài)可能是二維表(比如Excel表格),也可能是某一列(數(shù)據(jù)序列)。以某個(gè)數(shù)據(jù)序列為例,如何進(jìn)行組織和存儲(chǔ)呢?——Python基本數(shù)據(jù)結(jié)構(gòu)Python基本數(shù)據(jù)結(jié)構(gòu)第1章

列表元組集合字典

列表作為Python中一種數(shù)據(jù)結(jié)構(gòu),可以存放不同類(lèi)型的數(shù)據(jù),用中括號(hào)括起來(lái)進(jìn)行定義。

L1=[1,2,3,4,5,6]L2=[1,2,'HE',3,5]L3=['KJ','CK','HELLO']

Python基本數(shù)據(jù)結(jié)構(gòu)(列表)第1章

元組與列表類(lèi)似,也是Python中一種常用數(shù)據(jù)結(jié)構(gòu),不同之處在于元組中的元素不能修改,元組采用圓括號(hào)括起來(lái)進(jìn)行定義。

t1=(1,2,3,4,6)t2=(1,2,'kl')t3=('h1','h2','h3')

Python基本數(shù)據(jù)結(jié)構(gòu)(元組)第1章

集合也是Python中的數(shù)據(jù)結(jié)構(gòu),是一種不重復(fù)元素的序列,用大括號(hào)括起來(lái)進(jìn)行定義。

J1={1,'h',2,3,9}J2={1,'h',2,3,9,2}J3={'KR','LY','SE'}J4={'KR','LY','SE','SE'}Python基本數(shù)據(jù)結(jié)構(gòu)(集合)第1章

字典是一種按鍵、值對(duì)定義的數(shù)據(jù)結(jié)構(gòu),其中鍵必須唯一,用大括號(hào)括起來(lái)進(jìn)行定義。字典中的元素由鍵和值兩部分組成,鍵在前值在后,鍵和值之間用冒號(hào)(:)來(lái)區(qū)分,元素之間用逗號(hào)隔開(kāi)。鍵可以是數(shù)值、字符,值可以是數(shù)值、字符或者其他Python數(shù)據(jù)結(jié)構(gòu)(比如列表、元組等)。

d1={1:'h',2:[1,2,'k'],3:9}d2={'a':2,'b':'ky'}d3={'q1':[90,100],'k2':'kkk'}

Python基本數(shù)據(jù)結(jié)構(gòu)(字典)第1章

Python基本數(shù)據(jù)結(jié)構(gòu)之間比較第1章

列表和元組,對(duì)每個(gè)元素都進(jìn)行了編號(hào),稱(chēng)為索引(index),從0開(kāi)始依次遞增,它們的編號(hào)方式是系統(tǒng)默認(rèn)的,不可以更改。從數(shù)據(jù)的存儲(chǔ)上來(lái)看,它們沒(méi)有本質(zhì)區(qū)別,但是在操作有區(qū)別,比如列表的元素可以修改,執(zhí)行L2[1]=100,則原來(lái)值為2的元素,成功修改為100,而執(zhí)行t2[1]=100,則報(bào)錯(cuò),說(shuō)明元組具有“寫(xiě)保護(hù)”的功能,列表則沒(méi)有。而字典的編號(hào)方式則更靈活,可以進(jìn)行個(gè)性化設(shè)置,比如可以用整數(shù)來(lái)編號(hào),也可以用字符串來(lái)編號(hào),這個(gè)編號(hào)要求具有唯一性,即“鍵”。集合數(shù)據(jù)結(jié)構(gòu)則沒(méi)有索引,僅保持了元素的唯一性,如果是集合之間運(yùn)算,比如取交集、并集、差集等,建議使用這個(gè)數(shù)據(jù)結(jié)構(gòu),否則不建議使用第1章Python基礎(chǔ)索引、切片求長(zhǎng)度、統(tǒng)計(jì)成員身份確認(rèn)和變量刪除Python相關(guān)公有方法第1章Python公有方法是指Python中大部分的數(shù)據(jù)結(jié)構(gòu)均可以通用的一種數(shù)據(jù)操作方法索引切片求長(zhǎng)度統(tǒng)計(jì)成員身份確認(rèn)變量刪除

索引第1章索引即通過(guò)數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)標(biāo)識(shí)(下標(biāo)索引或鍵)來(lái)訪(fǎng)問(wèn)s3='ILikepython'L1=[1,2,3,4,5,6]t2=(1,2,'kl')d1={1:'h',2:[1,2,'k'],3:9}d3={'q1':[90,100],'k2':'kkk'}print(s3[0],s3[1],L1[0],t2[2],d1[3],d3['k2'])執(zhí)行結(jié)果如下:I1kl9kkk注意下標(biāo)從0開(kāi)始。字典結(jié)構(gòu)的數(shù)據(jù)標(biāo)識(shí)為鍵。需要說(shuō)明的是,集合類(lèi)型數(shù)據(jù)結(jié)構(gòu),不支持索引訪(fǎng)問(wèn)。因?yàn)樗鼪](méi)有數(shù)據(jù)標(biāo)識(shí)

切片是指定索引位置,對(duì)數(shù)據(jù)實(shí)現(xiàn)分塊訪(fǎng)問(wèn)或提取的一種數(shù)據(jù)操作方式。

下面簡(jiǎn)單介紹字符串、列表、元組的切片方法。

s2='''helloword!'''L2=[1,2,'HE',3,5]t2=(1,2,'kl')s21=s2[0:]s22=s2[0:4]s23=s2[:]s24=s2[1:6:2]L21=L2[1:3]L22=L2[2:]L23=L2[:]t21=t2[0:2]t22=t2[:]切片執(zhí)行結(jié)果如下:helloword!hellhelloword!el[2,'HE']['HE',3,5][1,2,'HE',3,5](1,2)(1,2,'kl')

第1章

print(s21)print(s22)print(s23)print(s24)print(L21)print(L22)print(L23)print(t21)print(t22)0123456789100123012345678910135122340123401012

字符串的長(zhǎng)度為字符串中所有字符的個(gè)數(shù),其中空格也算一個(gè)字符;列表、元組、集合的長(zhǎng)度,即為元素的個(gè)數(shù);字典的長(zhǎng)度為鍵的個(gè)數(shù),用函數(shù)len()來(lái)實(shí)現(xiàn)

s3='ILikepython'L1=[1,2,3,4,5,6]t2=(1,2,'kl')J2={1,‘h’,2,3,9}

d1={1:'h',2:[1,2,'k'],3:9}k1=len(s3)k2=len(L1)k3=len(t2)k4=len(J2)k5=len(d1)

求長(zhǎng)度第1章

統(tǒng)計(jì)包括求最大值、最小值、求和等,可以是列表、元組、字符串L1=[1,2,3,4,5,6]t1=(1,2,3,4,6)s2='''helloword!'''m1=max(L1)m2=max(t1)m3=min(L1)m4=sum(t1)m5=max(s2)

統(tǒng)計(jì)第1章

成員身份的確認(rèn),用in命令,用來(lái)判斷某個(gè)元素是否屬于指定的數(shù)據(jù)結(jié)構(gòu)變量。

L1=[1,2,3,4,5,6]t1=(1,2,3,4,6)s2='''helloword!'''J2={1,'h',2,3,9,'SE'}z1='I'ins2z2='kj'inL1z3=2int1z4='SE'inJ2

成員身份確認(rèn)第1章

程序運(yùn)行過(guò)程中,可以存在大量的中間變量,這些變量一來(lái)占用空間,二來(lái)影響可讀性,可以使用del命令刪除不必要的中間變量。

a=[1,2,3,4];b='srt'c={1:4,2:7,3:8,4:9}dela,b執(zhí)行該程序代碼,刪除了a、b兩個(gè)變量,而變量c保留。變量刪除第1章

第1章Python基礎(chǔ)列表和元組方法字典方法字符串方法

預(yù)定義幾個(gè)列表L1=[1,2,3,4,5,6]L2=[1,2,'HE',3,5]L3=['KJ','CK','HELLO']L4=[1,4,2,3,8,4,7]列表方法L=list()#產(chǎn)生空列表LL=[]#也可以用[]來(lái)產(chǎn)生空列表第1章

1.創(chuàng)建空列表:list()

2.添加元素:append()

L1=[1,2,3,4,5,6]L2=[1,2,'HE',3,5]L=[]L1.append('H')#在L1列表后面增加元素‘H’.print(L1)fortinL2:#利用循環(huán),將L2中的元素,依次順序添加到前面新建的空列表L中L.append(t)print(L)

執(zhí)行結(jié)果如下:[1,2,3,4,5,6,'H'][1,2,'HE',3,5]列表方法第1章

3.擴(kuò)展列表:extend()

L2=[1,2,'HE',3,5]L1=[1,2,3,4,5,6,'H']L1.extend(L2)#在前面的L1基礎(chǔ)上,添加整個(gè)L2至其后面print(L1)執(zhí)行結(jié)果如下:[1,2,3,4,5,6,'H',1,2,'HE',3,5]4.元素計(jì)數(shù):count()print('元素2出現(xiàn)的次數(shù)為:',L1.count(2))執(zhí)行結(jié)果如下:元素2出現(xiàn)的次數(shù)為:2列表方法第1章

5.返回下標(biāo):index()

L1=[1,2,3,4,5,6,'H',1,2,'HE',3,5]print('H的索引下標(biāo)為:',L1.index('H'))執(zhí)行結(jié)果如下:H的索引下標(biāo)為:66.刪除元素:remove()

L1.remove('HE')#刪除HE元素print(L1)執(zhí)行結(jié)果如下:[1,2,3,4,5,6,'H',1,2,3,5]列表方法第1章

7.元素排序:sort()

L4=[1,4,2,3,8,4,7]L4.sort()print(L4)執(zhí)行結(jié)果如下:[1,2,3,4,4,7,8]注意,如果執(zhí)行L5=L4.sort(),則L5為空的。實(shí)際上經(jīng)過(guò)排序后L4的元素位置順序已經(jīng)改變了列表方法第1章

預(yù)定義兩個(gè)元組T1=(1,2,2,4,5)T2=('H2',3,'KL')創(chuàng)建空元組:tuple()

t1=tuple()#產(chǎn)生空元組

t=()#產(chǎn)生空元組元組方法第1章

T1=(1,2,2,4,5)T2=('H2',3,'KL')2.元素計(jì)數(shù):count()print('元素2出現(xiàn)的次數(shù)為:',T1.count(2))執(zhí)行結(jié)果如下:

元素2出現(xiàn)的次數(shù)為:

23.返回下標(biāo):index()

print('KL的下標(biāo)索引為:',T2.index('KL'))執(zhí)行結(jié)果如下:KL的下標(biāo)索引為:2元組方法第1章4.元組連接T3=T1+T2print(T3)執(zhí)行結(jié)果如下:(1,2,2,4,5,'H2',3,'KL')

字符串作為基本的數(shù)據(jù)類(lèi)型,也可以看作一種特殊的數(shù)據(jù)結(jié)構(gòu)字符從0開(kāi)始進(jìn)行索引編號(hào),包括空格特特殊字符1.創(chuàng)建空字符串:str()通過(guò)str函數(shù),可以創(chuàng)建空的字符串。示例代碼如下:S=str()#或S=’’產(chǎn)生空字符串

字符串方法第1章

2.查找子串:find()用find函數(shù)查找子串出現(xiàn)的開(kāi)始索引位置,如果沒(méi)有找到則返回-1。st='helloword!‘z1=st.find('he',0,len(st))#返回包含子串的開(kāi)始索引位置,否則-1z2=st.find('he',1,len(st))print(z1,z2)

執(zhí)行結(jié)果為:

0-1其中find函數(shù)第一個(gè)參數(shù)為需要查找的子串,第二個(gè)參數(shù)是待查字符串指定的開(kāi)始位置,第三個(gè)參數(shù)為指定待查字符串的長(zhǎng)度。字符串方法第1章

3.替換子串:replace()st='helloword!‘stt=st.replace('or','kl')#原來(lái)的st不變print(stt)print(st)執(zhí)行結(jié)果如下:hellowkld!helloword!4.字符串連接st1='joh'st2=st1+''+stprint(st2)執(zhí)行結(jié)果如下:johhelloword!字符串方法第1章

5.字符串比較

通過(guò)等號(hào)或不等號(hào)“==”、“!=”來(lái)進(jìn)行判斷。str1='jo'str2='qb'str3='qb's1=str1!=str2s2=str2==str3print(s1,s2)執(zhí)行結(jié)果如下:TrueTrue字符串方法第1章

字典方法1.創(chuàng)建字典:dict()通過(guò)dict函數(shù),可以創(chuàng)建空字典,也可以將嵌套列表轉(zhuǎn)換為典。d=dict()#產(chǎn)生空字典D={}#產(chǎn)生空字典list1=[('a','ok'),('1','lk'),('001','lk')]#嵌套元素為元組list2=[['a','ok'],['b','lk'],[3,'lk']]#嵌套元素為列表d1=dict(list1)d2=dict(list2)print('d=:',d)print('D=:',D)print('d1=:',d1)print('d2=:',d2)第1章

執(zhí)行結(jié)果如下:d={}D={}d1={'a':'ok','1':'lk','001':'lk'}d2={'a':'ok','b':'lk',3:'lk'}字典方法第1章

2.獲取字典值:get()print(d2.get('b'))輸出結(jié)果如下:lk3.字典賦值:setdefault()通過(guò)setdefault方法,可以對(duì)預(yù)定義的空字典進(jìn)行賦值。d.setdefault('a',0)D.setdefault('b',[1,2,3,4,5])print(d)print(D)執(zhí)行結(jié)果如下:{'a':0}{'b':[1,2,3,4,5]}預(yù)定義d={}D={}d2={'a':'ok','b':'lk',3:'lk'}第1章Python基礎(chǔ)條件語(yǔ)句循環(huán)語(yǔ)句函數(shù)條件語(yǔ)句條件判斷語(yǔ)句,是指滿(mǎn)足某些條件,才能做某件事情,而不滿(mǎn)足條件時(shí)是不允許做的。Python條件語(yǔ)句主要有三種形式:if…if…else…if…elif…else…第1章

條件語(yǔ)句第1章

if…語(yǔ)句if條件:

執(zhí)行代碼塊注意條件后面的冒號(hào)(英文格式輸入),同時(shí)執(zhí)行代碼塊均需要縮進(jìn)并對(duì)齊。x=10importmath#導(dǎo)入數(shù)學(xué)函數(shù)庫(kù)ifx>0:#冒號(hào)s=math.sqrt(x)#求平方根,縮進(jìn)print('s=',s)#打印結(jié)果,縮進(jìn)執(zhí)行結(jié)果如下:s=3.1622776601683795條件語(yǔ)句第1章

if…else…語(yǔ)句if條件:

執(zhí)行語(yǔ)句塊else:

執(zhí)行語(yǔ)句塊同樣需要注意冒號(hào)及縮進(jìn)對(duì)齊語(yǔ)法。x=-10importmath#導(dǎo)入數(shù)學(xué)函數(shù)庫(kù)ifx>0:#冒號(hào)s=math.sqrt(x)#求平方根,縮進(jìn)print('s=',s)#打印結(jié)果,縮進(jìn)else:s='負(fù)數(shù)不能求平方根'#提示語(yǔ),縮進(jìn)print('s=',s)#打印結(jié)果,縮進(jìn)執(zhí)行結(jié)果如下:s=負(fù)數(shù)不能求平方根條件語(yǔ)句第1章

if…elif…else…語(yǔ)句if條件:

執(zhí)行語(yǔ)句塊elif條件:

執(zhí)行語(yǔ)句塊else:

執(zhí)行語(yǔ)句塊weather='sunny'ifweather=='sunny':print("shopping")elifweather=='cloudy':print("playingfootball")else:print("donothing")執(zhí)行結(jié)果如下:shopping循環(huán)語(yǔ)句第1章

while語(yǔ)句循環(huán)語(yǔ)句while,其使用方式如下:while條件:

執(zhí)行語(yǔ)句塊注意執(zhí)行語(yǔ)句塊中的程序全部都要縮進(jìn)并對(duì)齊。一般while循環(huán)需要預(yù)定義條件變量,當(dāng)滿(mǎn)足條件的時(shí)候,循環(huán)執(zhí)行語(yǔ)句塊的內(nèi)容。以求1到100的和為例t=100 s=0whilet:s=s+tt=t-1print('s=',s)執(zhí)行結(jié)果如下:s=5050循環(huán)語(yǔ)句第1章

for循環(huán)循環(huán)語(yǔ)句for使用方式如下:for變量in序列:

執(zhí)行語(yǔ)句塊注意執(zhí)行語(yǔ)句塊中的程序全部需要縮進(jìn)并對(duì)齊,其中序列為任意序列,可以是數(shù)組、列表、元組等。list1=list()list2=list()list3=list()forainrange(10):list1.append(a)fortin['a','b','c','d']:list2.append(t)forqin('k','j','p'):list3.append(q)print(list1)print(list2)print(list3)執(zhí)行結(jié)果如下:[0,1,2,3,4,5,6,7,8,9]['a','b','c','d']['k','j','p']函數(shù)第1章

無(wú)返回值函數(shù)定義與調(diào)用無(wú)返回值函數(shù)的定義格式如下:def函數(shù)名(輸入?yún)?shù)):

函數(shù)體注意冒號(hào)及縮進(jìn),函數(shù)體中的程序均需要縮進(jìn)并對(duì)齊。#定義函數(shù)defsumt(t):s=0whilet:s=s+tt=t-1#調(diào)用函數(shù)并打印結(jié)果

s=sumt(50)print(s)執(zhí)行結(jié)果如下所示:None執(zhí)行結(jié)果為None,表示沒(méi)有任何結(jié)果,因?yàn)樵摵瘮?shù)沒(méi)有任何返回值。函數(shù)第1章

有返回值函數(shù)定義與調(diào)用有返回值的函數(shù)定義如下:def函數(shù)名稱(chēng)(輸入?yún)?shù)):

函數(shù)體return返回變量

#定義函數(shù)defsumt(t):s=0whilet:s=s+tt=t-1returns

#調(diào)用函數(shù)并打印結(jié)果

s=sumt(50)print(s)執(zhí)行結(jié)果如下:1275該示例程序僅僅是在上一節(jié)無(wú)返回值函數(shù)定義的基礎(chǔ)上,增加了返回值。函數(shù)第1章

有多返回值函數(shù)定義與調(diào)用多返回值函數(shù),可以用一個(gè)元組來(lái)存放返回結(jié)果,元組中的元素?cái)?shù)據(jù)類(lèi)型可以不相同,其定義如下:def函數(shù)名稱(chēng)(輸入?yún)?shù)):

函數(shù)體return(返回變量1,返回變量2,…)#定義函數(shù)deftest(r):importmaths=math.pi*r**2c=2*math.pi*rL=(s,c)D=[s,c,L]return(s,c,L,D)#調(diào)用函數(shù)并打印結(jié)果v=test(10)s=v[0]c=v[1]L=v[2]D=v[3]print(s)print(c)print(L)print(D)執(zhí)行結(jié)果如下:314.159265358979362.83185307179586(314.1592653589793,62.83185307179586)[314.1592653589793,62.83185307179586,(314.1592653589793,62.83185307179586)]第2章

科學(xué)計(jì)算包Numpy數(shù)組創(chuàng)建、數(shù)組尺寸與重排數(shù)組運(yùn)算與數(shù)學(xué)函數(shù)數(shù)組切片、連接、存取、展平、排序與搜索Numpy簡(jiǎn)介第2章

Numpy是Python用于科學(xué)計(jì)算的基礎(chǔ)包,也是大量Python數(shù)學(xué)和科學(xué)計(jì)算包的基礎(chǔ)。Numpy的核心基礎(chǔ)是ndarray(N-dimensionalarray,N維數(shù)組),即由數(shù)據(jù)類(lèi)型相同的元素組成的N維數(shù)組。使用該包,需要按模塊的形式導(dǎo)入,即:importnumpy,大多情況下是importnumpyasnp,即簡(jiǎn)稱(chēng)np。利用array()函數(shù)創(chuàng)建數(shù)組第2章?;赼rray()函數(shù),可以將列表、元組、嵌套列表、嵌套元組等數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為數(shù)組d1=[1,2,3,4,0.1,7]#列表d2=(1,2,3,4,2.3)#元組d3=[[1,2,3,4],[5,6,7,8]]#嵌套列表,元素為列表d4=[(1,2,3,4),(5,6,7,8)]#嵌套列表,元素為元組d5=((1,2,3,4),(5,6,7,8))#嵌套元組importnumpyasnpd11=np.array(d1)d21=np.array(d2)d31=np.array(d3)d41=np.array(d4)d51=np.array(d5)deld1,d2,d3,d4,d5利用內(nèi)置函數(shù)創(chuàng)建數(shù)組第2章importnumpyasnpz1=np.ones((3,3))#創(chuàng)建3行3列元素全為1的數(shù)組z2=np.zeros((3,4))#創(chuàng)建3行4列元素全為0的數(shù)組z3=np.arange(10)#創(chuàng)建默認(rèn)初始值為0,默認(rèn)步長(zhǎng)為1,末值為9的一維數(shù)組z4=np.arange(2,10)#創(chuàng)建默認(rèn)初始值為2,默認(rèn)步長(zhǎng)為1,末值為9的一維數(shù)組z5=np.arange(2,10,2)#創(chuàng)建默認(rèn)初始值為2,步長(zhǎng)為2,末值為9的一維數(shù)組數(shù)組尺寸與重排第2章d1=[1,2,3,4,0.1,7]#列表d3=[[1,2,3,4],[5,6,7,8]]#嵌套列表,元素為列表importnumpyasnpd11=np.array(d1)#將d1列表轉(zhuǎn)換為一維數(shù)組,結(jié)果賦值給變量d11d31=np.array(d3)#將d3嵌套列表轉(zhuǎn)換為二維數(shù)組,結(jié)果賦值給變量d31deld1,d3#刪除d1,d3s11=d11.shape

#返回一維數(shù)組d11的尺寸,結(jié)果賦值給變量s11s31=d31.shape#返回二維數(shù)組d31的尺寸,結(jié)果賦值給變量s31r=np.array(range(9))#一維數(shù)組r1=r.reshape((3,3))#重排為3行3列第2章數(shù)組運(yùn)算importnumpyasnpA=np.array([[1,2],[3,4]])#定義二維數(shù)組AB=np.array([[5,6],[7,8]])#定義二維數(shù)組BC1=A-B#A、B兩個(gè)數(shù)組元素之間相減,結(jié)果賦給變量C1C2=A+B#A、B兩個(gè)數(shù)組元素之間相加,結(jié)果賦給變量C2C3=A*B#A、B兩個(gè)數(shù)組元素之間相乘,結(jié)果賦給變量C3C4=A/B#A、B兩個(gè)數(shù)組元素之間相除,結(jié)果賦給變量C4C5=A/3#A數(shù)組所有元素除以3,結(jié)果賦給變量C5C6=1/A#1除以A數(shù)組所有元素,結(jié)果賦給變量C6C7=A**2#A數(shù)組所有元素取平方,結(jié)果賦給變量C7C8=np.array([1,2,3,3.1,4.5,6,7,8,9])#定義數(shù)組C8C9=(C8-min(C8))/(max(C8)-min(C8))#C8中的元素做極差化處理,結(jié)果賦給變量C9第2章數(shù)學(xué)函數(shù)D=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])#定義數(shù)組D#數(shù)學(xué)運(yùn)算E1=np.sqrt(D)#數(shù)組D中所有元素取平方根,結(jié)果賦給變量E1E2=np.abs([1,-2,-100])#取絕對(duì)值E3=np.cos([1,2,3])#取cos值E4=np.sin(D)#取sin值E5=np.exp(D)#取指數(shù)函數(shù)值第2章常用組切片方法假設(shè)D為待訪(fǎng)問(wèn)或切片的數(shù)據(jù)變量,則訪(fǎng)問(wèn)或者切片的數(shù)據(jù)=D[①,②]。其中①為對(duì)D的行下標(biāo)控制,②為對(duì)D的列下標(biāo)控制。為了更靈活地操作數(shù)據(jù),取所有的行或者列,可以用“:”來(lái)代替實(shí)現(xiàn)。同時(shí),行控制還可以通過(guò)邏輯列表來(lái)實(shí)現(xiàn)。importnumpyasnpD=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])#定義數(shù)組DD12=D[1,2]#訪(fǎng)問(wèn)D中行為1,列為2的數(shù)據(jù),注意下標(biāo)是從0開(kāi)始的。D1=D[:,[1,3]]#訪(fǎng)問(wèn)D中第1、3列數(shù)據(jù)D2=D[[1,3],:]#訪(fǎng)問(wèn)D中第1、3行數(shù)據(jù)Dt1=D[D[:,0]>5,:]#取D中滿(mǎn)足第0列大于5的所有列數(shù)據(jù),本質(zhì)上行控制為邏輯列表TF=[True,False,False,True]#取D中第0、3行的所有列數(shù)據(jù),本質(zhì)上行控制為邏輯列表,取邏輯值為真的行Dt3=D[TF,:]第2章利用ix_()函數(shù)進(jìn)行數(shù)組切片通過(guò)ix_()函數(shù)構(gòu)造行、列下標(biāo)索引器,實(shí)現(xiàn)數(shù)組的切片操作。importnumpyasnpD=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])#定義數(shù)組DD3=D[np.ix_([1,2],[1,3])]#提取D中行數(shù)為1、2,列數(shù)為1、3的所有元素D4=D[np.ix_(np.arange(2),[1,3])]#提取D中行數(shù)為0、1,列數(shù)為1、3的所有元素D6=D[np.ix_(D[:,1]<11,[1,2])]#提取D中第1列小于11得到的邏輯數(shù)組作為行索引,列數(shù)為1、2的所有元素D7=D[np.ix_(D[:,1]<11,[2])]#提取D中第1列小于11得到的邏輯數(shù)組作為行索引,列數(shù)為2的所有元素TF=[True,False,False,True]D8=D[np.ix_(TF,[2])]#提取TF=[True,False,False,True]邏輯列表為行索引,列數(shù)為2的所有元素D9=D[np.ix_(TF,[1,3])]#提取TF=[True,False,False,True]邏輯列表為行索引,列數(shù)為1,,3的所有元素第2章數(shù)組連接importnumpyasnpA=np.array([[1,2],[3,4]])#定義二維數(shù)組AB=np.array([[5,6],[7,8]])#定義二維數(shù)組BC_s=np.hstack((A,B))#水平連接要求行數(shù)相同C_v=np.vstack((A,B))#垂直連接要求列數(shù)相同第2章數(shù)組存取importnumpyasnpA=np.array([[1,2],[3,4]])#定義二維數(shù)組AB=np.array([[5,6],[7,8]])#定義二維數(shù)組BC_s=np.hstack((A,B))#水平連接np.save('data',C_s)第2章數(shù)組存取importnumpyasnpC_s=np.load(‘data.npy’)

數(shù)組展平

前面介紹了reshape函數(shù)將一維數(shù)組形態(tài)變換為二維數(shù)組,事實(shí)上也可以將二維數(shù)組形態(tài)展平變換為一維數(shù)組,通過(guò)ravel()函數(shù)即可實(shí)現(xiàn)。importnumpyasnparr=np.arange(12).reshape(3,4)arr1=arr.ravel()第2章

數(shù)組排序

通過(guò)sort函數(shù),可以對(duì)數(shù)組元素值按從小到大進(jìn)行直接排序importnumpyasnparr=np.array([5,2,3,3,1,9,8,6,7])arr1=np.sort(arr)第2章

數(shù)組搜索

通過(guò)argmax和argmin函數(shù),可以返回待搜索數(shù)組最大值和最小值元素的索引值,如果存在多個(gè)最大值或最小值,則返回第一次出現(xiàn)的索引。對(duì)于二維數(shù)組而已,可以通過(guò)設(shè)置axis=0或1返回各列或者各行最大值或最小值索引。需要注意的是,索引從0開(kāi)始。importnumpyasnparr=np.array([5,2,3,3,1,1,9,8,6,7,8,8])arr1=arr.reshape(3,4)maxindex=np.argmax(arr)minindex=np.argmin(arr)maxindex1=np.argmax(arr1,axis=0)#返回各列最大值索引minindex1=np.argmin(arr1,axis=1)

#返回各行最小值索引第2章第2章

科學(xué)計(jì)算包Numpy矩陣創(chuàng)建、矩陣基本屬性矩陣基本運(yùn)算線(xiàn)性代數(shù)運(yùn)算

矩陣創(chuàng)建Numpy的matrix是繼承自NumPy的二維數(shù)組對(duì)象,不僅擁有二維數(shù)組的屬性、方法與函數(shù),還擁有諸多特有的屬性與方法。同時(shí),Numpy中的matrix和線(xiàn)性代數(shù)中的矩陣概念幾乎完全相同,同樣含有轉(zhuǎn)置矩陣,共軛矩陣,逆矩陣等概念。利用mat、matrix創(chuàng)建Numpy矩陣Numpy中可使用mat、matrix或bmat函數(shù)來(lái)創(chuàng)建矩陣importnumpyasnpmat1=np.mat("123;456;789")mat2=np.matrix([[1,2,3],[4,5,6],[7,8,9]])

第2章

矩陣創(chuàng)建

利用bmat創(chuàng)建矩陣在矩陣的日常使用過(guò)程中,將小矩陣組合成大矩陣是一種頻率極高的操作。在Numpy中可以使用bmat分塊矩陣函數(shù)實(shí)現(xiàn)。importnumpyasnparr1=np.eye(3)arr2=3*arr1mat=np.bmat(“arr1arr2;arr1arr2”)

第2章

矩陣基本屬性(轉(zhuǎn)置、共軛、逆矩陣)

importnumpyasnpmat=np.matrix(np.arange(4).reshape(2,2))mT=mat.TmH=mat.HmI=mat.I矩陣基本屬性第2章

importnumpyasnpmat1=np.mat("123;456;789")mat2=mat1*3mat3=mat1+mat2mat4=mat1-mat2mat5=mat1*mat2mat6=np.multiply(mat1,mat2)#點(diǎn)乘矩陣基本運(yùn)算第2章

線(xiàn)性代數(shù)運(yùn)算線(xiàn)性代數(shù)是數(shù)學(xué)的一個(gè)重要分支。Numpy包含numpy.linalg模塊,提供線(xiàn)性代數(shù)所需的功能,如計(jì)算逆矩陣、求解線(xiàn)性方程組、求特征值、奇異值分解以及求解行列式等。numpy.linalg模塊中的一些常用函數(shù)表函數(shù)名稱(chēng)說(shuō)明dot矩陣相乘inv求逆矩陣solve求解線(xiàn)性方程組

eig求特征值和特征向量eigvals求特征值svd計(jì)算奇異值分解det求行列式線(xiàn)性代數(shù)運(yùn)算第2章

計(jì)算逆矩陣使用numpy.linalg模塊中的inv函數(shù)可以計(jì)算逆矩陣importnumpyasnpmat=np.mat('111;123;136')inverse=np.linalg.inv(mat)A=np.dot(mat,inverse)線(xiàn)性代數(shù)運(yùn)算第2章

求解線(xiàn)性方程組numpy.linalg模塊中的solve函數(shù)可以求解線(xiàn)性方程組importnumpyasnpA=np.mat("1,-1,1;2,1,0;2,1,-1")b=np.array([4,3,-1])x=np.linalg.solve(A,b)#線(xiàn)性方程組Ax=b的解第2章

線(xiàn)性代數(shù)運(yùn)算求解特征值與特征向量numpy.linalg模塊中的eigvals函數(shù)可以計(jì)算矩陣的特征值,eig函數(shù)可以返回一個(gè)包含特征值和對(duì)應(yīng)的特征向量的元組:importnumpyasnpA=np.matrix([[1,0,2],[0,3,0],[2,0,1]])#A_value=np.linalg.eigvals(A)A_value,A_vector=np.linalg.eig(A)第2章

線(xiàn)性代數(shù)運(yùn)算奇異值分解利用numpy.linalg模塊中的svd函數(shù)可以對(duì)矩陣進(jìn)行奇異值分解,返回U、Sigma、V這3個(gè)矩陣,其中,U和V是正交矩陣,Sigma為一維。importnumpyasnpA=np.mat("4.0,11.0,14.0;8.0,7.0,-2.0")U,Sigma,V=np.linalg.svd(A,full_matrices=False)第2章

線(xiàn)性代數(shù)運(yùn)算計(jì)算矩陣行列式的值矩陣行列式是指矩陣的全部元素構(gòu)成的行列式,但構(gòu)成行列式的矩陣為方陣時(shí),行列式存在值。numpy.linalg模塊中的det函數(shù)可以計(jì)算矩陣行列式的值。importnumpyasnpA=np.mat("3,4;5,6")A_value=np.linalg.det(A)第2章

線(xiàn)性代數(shù)運(yùn)算第3章

數(shù)據(jù)處理包Pandaspandas簡(jiǎn)介、序列創(chuàng)建與訪(fǎng)問(wèn)序列屬性與方法序列切片與聚合運(yùn)算Pandas簡(jiǎn)介第3章

Pandas是基于Numpy開(kāi)發(fā)的一個(gè)Python數(shù)據(jù)分析包,提供了大量的數(shù)據(jù)分析函數(shù),包括數(shù)據(jù)處理、數(shù)據(jù)抽取、數(shù)據(jù)集成、數(shù)據(jù)計(jì)算等基本的數(shù)據(jù)分析手段。Pandas核心數(shù)據(jù)結(jié)構(gòu)包括序列和數(shù)據(jù)框,序列儲(chǔ)存一維數(shù)據(jù),而數(shù)據(jù)框則可以存儲(chǔ)更復(fù)雜的多維數(shù)據(jù)。這里的數(shù)據(jù)框主要用來(lái)存儲(chǔ)二維數(shù)據(jù)(類(lèi)似于數(shù)據(jù)表)。通過(guò)importpandasaspd命令導(dǎo)入該包,其中pd為其簡(jiǎn)寫(xiě)。序列創(chuàng)建及訪(fǎng)問(wèn)第3章

序列由索引index和對(duì)應(yīng)的值構(gòu)成,默認(rèn)情況下索引從0開(kāi)始從小到大順序排列,每個(gè)索引對(duì)應(yīng)一個(gè)值??梢酝ㄟ^(guò)列表、元組、數(shù)組、字典等創(chuàng)建默認(rèn)序列或個(gè)性化序列。序列對(duì)象的創(chuàng)建通過(guò)Pandas包中的Series()函數(shù)來(lái)實(shí)現(xiàn)。importpandasaspd

#導(dǎo)入Pandas庫(kù)importnumpyasnp

#導(dǎo)入Numpy庫(kù)s1=pd.Series([1,-2,2.3,'hq'])#指定列表創(chuàng)建默認(rèn)序列s2=pd.Series([1,-2,2.3,'hq'],index=['a','b','c','d'])#指定列表和索引,創(chuàng)建個(gè)性化序列s3=pd.Series((1,2,3,4,'hq'))

#指定元組創(chuàng)建默認(rèn)序列s4=pd.Series(np.array([1,2,4,7.1]))

#指定數(shù)組創(chuàng)建默認(rèn)序列#通過(guò)字典創(chuàng)建序列mydict={'red':2000,'bule':1000,'yellow':500}

#定義字典ss=pd.Series(mydict)

#指定字典創(chuàng)建序列序列創(chuàng)建及訪(fǎng)問(wèn)第3章序列的訪(fǎng)問(wèn)通過(guò)index索引訪(fǎng)問(wèn)對(duì)應(yīng)的元素值。print(s4[3])print(s2['c'])執(zhí)行結(jié)果如下:7.12.3序列屬性第3章序列有兩個(gè)屬性,分別為值(values)和索引(index)。通過(guò)序列中的values屬性和index屬性可以獲取其內(nèi)容。importpandasaspds1=pd.Series([1,-2,2.3,'hq'])#創(chuàng)建序列s1va1=s1.values#獲取序列s1中的值,賦給變量va1in1=s1.index#獲取序列s1中的索引,賦給變量in1print(va1)

#打印變量結(jié)果print(in1)

#打印變量結(jié)果,可通過(guò)list()函數(shù)轉(zhuǎn)化為列表,如in2=list(in1)執(zhí)行結(jié)果如下:[1-22.3'hq']RangeIndex(start=0,stop=4,step=1)序列方法第3章unique()通過(guò)序列中的unique()方法,可以去掉序列中重復(fù)的元素值importpandasaspds5=[1,2,2,3,'hq','hq','he']#定義列表s5s5=pd.Series(s5)#將定義的列表s5轉(zhuǎn)換為序列s51=s5.unique()#調(diào)用unique()方法去重print(s51)

執(zhí)行結(jié)果如下:[123'hq''he']序列方法第3章isin()通過(guò)isin()方法,判斷元素值的存在性,如果存在則返回True,否則為False。比如判斷‘he’這個(gè)元素是否存在前面定義的s5序列中。importpandasaspds5=[1,2,2,3,'hq','hq','he']s5=pd.Series(s5)s52=s5.isin(['he'])print(s52)執(zhí)行結(jié)果如下:0False1False2False3False4False5False6Truedtype:bool序列方法——value_counts()第3章value_counts()通過(guò)序列中的value_counts()方法,可以統(tǒng)計(jì)獲得序列元素值出現(xiàn)的次數(shù)。比如統(tǒng)計(jì)s5序列中每個(gè)元素值出現(xiàn)的次數(shù)。s53=s5.value_counts()其中索引(index)為原序列元素的值,其值部分則為出現(xiàn)的次數(shù)。序列方法——空值處理方法第3章空值處理方法:isnull()、notnull()、dropan()它們的使用方法如下:isnull()判斷序列中是否有空值(nan值),如果有空值,返回True,否則False;notnull()判斷序列中的非空值(nan值),如果真,返回True,否則False;dropan()清洗序列中的空值(nan值)。importpandasaspdimportnumpyasnpss1=pd.Series([10,'hq',60,np.nan,20])#定義序列ss1,其中np.nan為空值(nan值)tt=ss1[~ss1.isnull()]#~為取反,采用邏輯數(shù)組進(jìn)行索引獲取數(shù)據(jù)在以上代碼后面繼續(xù)輸入以下示例程序:tt2=ss1[ss1.notnull()]tt3=ss1.dropna()tt2和tt3的結(jié)果與tt一樣。序列切片第3章序列元素訪(fǎng)問(wèn)是通過(guò)索引完成的,切片即連續(xù)或者間斷地批量獲取元素。importnumpyasnps1=pd.Series([1,-2,2.3,'hq'])s2=pd.Series([1,-2,2.3,'hq'],index=['a','b','c','d'])s4=pd.Series(np.array([1,2,4,7.1]))s22=s2[['a','d']]#取索引號(hào)為字符a,b的元素s11=s1[0:2]#索引為連續(xù)的數(shù)組s12=s1[[0,2,3]]#索引為不連續(xù)的數(shù)組s41=s4[s4>2]#索引為邏輯數(shù)組print(s22)print('-'*20)print(s11)print('-'*20)print(s12)print('-'*20)print(s41)執(zhí)行結(jié)果如下:a1dhqdtype:object--------------------011-2dtype:object--------------------0122.33hqdtype:object--------------------24.037.1dtype:float64序列聚合運(yùn)算第3章序列的聚合運(yùn)算,主要包括對(duì)序列中的元素求和、平均值、最大值、最小值、方差、標(biāo)準(zhǔn)差等。importpandasaspds=pd.Series([1,2,4,5,6,7,8,9,10])su=s.sum()sm=s.mean()ss=s.std()smx=s.max()smi=s.min()第3章

數(shù)據(jù)處理包Pandas數(shù)據(jù)框(DataFrame)簡(jiǎn)介、創(chuàng)建數(shù)據(jù)框?qū)傩耘c方法數(shù)據(jù)框訪(fǎng)問(wèn)與切片數(shù)據(jù)框(DataFram)簡(jiǎn)介第3章

Pandas中另一個(gè)重要的數(shù)據(jù)對(duì)象為數(shù)據(jù)框(DataFram),由多個(gè)序列按照相同的index組織在一起形成一個(gè)二維表。事實(shí)上,數(shù)據(jù)框的每一列為序列。數(shù)據(jù)框的屬性包括index、列名和值,均可以獲取出來(lái)并進(jìn)行操作。由于數(shù)據(jù)框是更為廣泛的一種數(shù)據(jù)組織形式,許多外部數(shù)據(jù)文件讀取到Python中大部分會(huì)采用數(shù)據(jù)框的形式進(jìn)行存取,比如數(shù)據(jù)庫(kù)、excel和TXT文本。同時(shí)數(shù)據(jù)框也提供了極為豐富的方法用于處理數(shù)據(jù)及完成計(jì)算任務(wù)。數(shù)據(jù)框創(chuàng)建第3章

基于字典,利用Pandas庫(kù)中的DataFrame函數(shù),可以創(chuàng)建數(shù)據(jù)框。其中字典的鍵轉(zhuǎn)化為列名,字典的值轉(zhuǎn)化為列值,而索引為默認(rèn)值,即從0開(kāi)始從小到大排列。importpandasaspdimportnumpyasnpdata={'a':[2,2,np.nan,5,6],'b':[‘kl’,’kl’,’kl’,np.nan,’kl’],’c’:[4,6,5,np.nan,6],’d’:[7,9,np.nan,9,8]}df=pd.DataFrame(data)數(shù)據(jù)框?qū)傩缘?章

數(shù)據(jù)框?qū)ο缶哂腥齻€(gè)屬性,分別為列名、索引和值。以前面定義的df為例print('columns=',df.columns)print('-'*50)print('index=',list(df.index))print('-'*50)print('values=')print(df.values)輸出結(jié)果為:columns=Index(['a','b','c','d'],dtype='object')--------------------------------------------------index=[0,1,2,3,4]--------------------------------------------------values=[[2.0'kl'4.07.0][2.0'kl'6.09.0][nan'kl'5.0nan][5.0nannan9.0][6.0'kl'6.08.0]]數(shù)據(jù)框方法第3章dropna()通過(guò)dorpna()方法,可以去掉數(shù)據(jù)集中的空值(nan值),需要注意的是原來(lái)數(shù)據(jù)集不發(fā)生改變,新數(shù)據(jù)集需要重新定義。df1=df.dropna()數(shù)據(jù)框方法第3章

fillna()通過(guò)fillna()方法,可以對(duì)數(shù)據(jù)框中的空值(nan值)進(jìn)行填充。默認(rèn)情況下所有空值填充同一個(gè)元素值(數(shù)值或者字符串),也可以指定不同的列填充不同的值。df2=df.fillna(0)#所有空值元素填充0df3=df.fillna('Kl')#所有空值元素填充kldf4=df.fillna({'a':0,'b':'kl','c':0,'d':0})

#全部列填充df5=df.fillna({'a':0,'b':'kl'})#部分列填充數(shù)據(jù)框方法第3章

sort_values()可以利用sort_values()方法,指定列按值進(jìn)行排序importpandasaspddata={'a':[5,3,4,1,6],'b':['d','c','a','e','q'],'c':[4,6,5,5,6]}Df=pd.DataFrame(data)Df1=Df.sort_values('a',ascending=False)#默認(rèn)按升序,這里設(shè)置為降序數(shù)據(jù)框方法第3章sort_index()有時(shí)候需要按索引進(jìn)行排序,這時(shí)候可以使用sort_index()方法。Df2=Df1.sort_index(ascending=False)#默認(rèn)按升序,這里設(shè)置為降序數(shù)據(jù)框方法第3章head()通過(guò)head(N)方法,可以取數(shù)據(jù)集中的前N行,比如取前面定義的數(shù)據(jù)框Df2中的前4行。H4=Df2.head(4);數(shù)據(jù)框方法第3章

drop()利用dorp()方法,可以刪掉數(shù)據(jù)集中的指定列。比如刪除前面定義的H4中的b列。H41=H4.drop('b',axis=1)#需指定軸為1數(shù)據(jù)框方法第3章

join()利用join()方法,可以實(shí)現(xiàn)兩個(gè)數(shù)據(jù)框之間的水平連接Df3=pd.DataFrame({'d':[1,2,3,4,5]})Df4=Df.join(Df3)數(shù)據(jù)框方法第3章to_excel()通過(guò)to_excel()方法,可以將數(shù)據(jù)框?qū)С龅紼xcel文件中,Excel文件中。importpandasaspdlist1=['a','b','c','d','e','f']list2=[1,2,3,4,5,6]list3=[1.4,3.5,2,6,7,8]list4=[4,5,6,7,8,9]list5=['t',5,6,7,'k',9.6]D={'M1':list1,'M2':list2,'M3':list3,'M4':list4,'M5':list5}G={'M1':list2,'M2':list3,'M3':list4}D=pd.DataFrame(D)#將字典D轉(zhuǎn)化為數(shù)據(jù)框G=pd.DataFrame(G)#將字典G轉(zhuǎn)化為數(shù)據(jù)框D.to_excel('D.xlsx')G.to_excel('G.xlsx')數(shù)據(jù)框方法第3章

描述統(tǒng)計(jì)方法可以對(duì)數(shù)據(jù)框中各列求和、求平均值或者進(jìn)行描述性統(tǒng)計(jì),以前面定義的Df4為例Dt=Df4.drop('b',axis=1)#Df4中刪除b列R1=Dt.sum()#各列求和R2=Dt.mean()#各列求平均值R3=Dt.describe()#各列做描述性統(tǒng)計(jì)數(shù)據(jù)框訪(fǎng)問(wèn)與切片第3章

利用數(shù)據(jù)框中的iloc屬性進(jìn)行切片假設(shè)DF為待訪(fǎng)問(wèn)或切片的數(shù)據(jù)框,則切片形式為:DF.iloc[①,②]。其中①為行下標(biāo)控制,②為列下標(biāo)控制,可通過(guò)數(shù)值列表來(lái)實(shí)現(xiàn),取所有的行或者列用“:”。同時(shí),行控制還可以通過(guò)邏輯列表來(lái)實(shí)現(xiàn)。#ilocforpositionalindexingc3=df2.iloc[1:3,2]c4=df2.iloc[1:3,0:2]c5=df2.iloc[1:3,:]c6=df2.iloc[[0,2,3],[1,2]]TF=[True,False,False,True,True]c7=df2.iloc[TF,[1]]訪(fǎng)問(wèn)當(dāng)個(gè)值,比如:df2.iloc[2,1]第3章

數(shù)據(jù)處理包PandasExcel數(shù)據(jù)文件讀取TXT數(shù)據(jù)文件讀取CSV數(shù)據(jù)文件讀取Excel文件讀取第3章

通過(guò)read_excel()函數(shù)讀取Excel文件數(shù)據(jù),可以讀取指定的工作簿(sheet),也可以設(shè)置讀取有無(wú)表頭的數(shù)據(jù)表。path='一、車(chē)次上車(chē)人數(shù)統(tǒng)計(jì)表.xlsx';data=pd.read_excel(path);Excel文件讀取第3章

讀取文件中Sheet2里的數(shù)據(jù)data=pd.read_excel(path,'Sheet2')#讀取sheet里面的數(shù)據(jù)Excel文件讀取第3章

有時(shí)候數(shù)據(jù)表中沒(méi)有設(shè)置字段,即無(wú)表頭,讀取格式如下:dta=pd.read_excel('dta.xlsx',header=None)#無(wú)表頭TXT文件讀取第3章

通過(guò)read_table()函數(shù)可以讀取TXT文本數(shù)據(jù)。需要注意的是,TXT文本數(shù)據(jù)列之間會(huì)存在特殊字符作為分隔,常見(jiàn)的有Tab鍵、空格和逗號(hào)。同時(shí)還需注意有些文本數(shù)據(jù)文件是沒(méi)有設(shè)置表頭的。importpandasaspddta1=pd.read_table('txt1.txt',header=None)#分隔默認(rèn)為T(mén)ab鍵,設(shè)置無(wú)表頭。TXT文件讀取第3章

dta2=pd.read_table('txt2.txt',sep='\s+')#分隔為空格,帶表頭TXT文件讀取第3章dta3=pd.read_table('txt3.txt',sep=',',header=None)

#分隔為逗號(hào),設(shè)置無(wú)表頭CSV文件讀取第3章CSV文件也是一類(lèi)廣泛使用的外部數(shù)據(jù)文件,對(duì)于一般的CSV數(shù)據(jù)文件可以通過(guò)read_csv()函數(shù)讀取。importpandasaspdA=pd.read_csv('data.csv',sep=',');#逗號(hào)分隔CSV文件讀取第3章CSV文件可以存儲(chǔ)大規(guī)模的數(shù)據(jù)文件,比如單個(gè)數(shù)據(jù)文件大小可達(dá)數(shù)GB、數(shù)十GB,這時(shí)候可以采用分塊的方式進(jìn)行讀取。importpandasaspdreader=pd.read_csv('data.csv',sep=',',chunksize=50000,usecols=[3,4,10])k=0forAinreader:k=k+1print('第'+str(k)+'次讀取數(shù)據(jù)規(guī)模為:',len(A))執(zhí)行結(jié)果如下:第1次讀取數(shù)據(jù)規(guī)模為:50000第2次讀取數(shù)據(jù)規(guī)模為:50000第3次讀取數(shù)據(jù)規(guī)模為:33699CSV文件讀取第3章對(duì)大規(guī)模的CSV文件進(jìn)行數(shù)據(jù)探索,可以讀取前N行進(jìn)行分析,比如前1000行importpandasaspdA=pd.read_csv('data.csv',sep=',',nrows=1000)小結(jié):通過(guò)pandas包中的函數(shù),讀取Excel、TXT和CSV文件,在Python中的數(shù)據(jù)結(jié)構(gòu)均為DataFrame數(shù)據(jù)框,進(jìn)而我們可以利用數(shù)據(jù)框中的方法進(jìn)行數(shù)據(jù)處理和分析了第3章

數(shù)據(jù)處理包Pandas時(shí)間處理函數(shù)數(shù)據(jù)框合并函數(shù)數(shù)據(jù)框關(guān)聯(lián)函數(shù)時(shí)間處理函數(shù)第3章

to_datetime()函數(shù)主要是將字符串型的日期轉(zhuǎn)換為時(shí)間戳的格式。方便后續(xù)的數(shù)據(jù)處理,比如提取其所屬年份、月份、周數(shù)、日期、小時(shí)、分鐘、秒、星期幾等簡(jiǎn)單調(diào)用形式為to_datetime(S,format),其中S為待求的日期字符串或日期字符串列表或日期字符串序列,format為日期字符串格式,默認(rèn)缺省importpandasaspdt1=pd.to_datetime('2015-08-0105:50:43.000001',format='%Y-%m-%d%H:%M:%S.%')t2=pd.to_datetime(['2015-08-0105:50:43','2015-08-0105:51:40'])t3=pd.to_datetime(['2015-08-01','2015-08-02'])t4=pd.to_datetime(pd.Series(['2015-08-01','2015-08-02']))時(shí)間處理函數(shù)第3章

執(zhí)行結(jié)果如下數(shù)據(jù)框合并函數(shù)第3章

對(duì)兩個(gè)數(shù)據(jù)框進(jìn)行水平合并、垂直合并是數(shù)據(jù)處理與整合中常見(jiàn)的操作,這里介紹concat()函數(shù),可以通過(guò)設(shè)置軸(Axis)為1或0實(shí)現(xiàn)importpandasaspdimportnumpyasnpdict1={'a':[2,2,'kt',6],'b':[4,6,7,8],'c':[6,5,np.nan,6]}dict2={'d':[8,9,10,11],'e':['p',16,10,8]}dict3={'a':[1,2],'b':[2,3],'c':[3,4],'d':[4,5],'e':[5,6]}df1=pd.DataFrame(dict1)df2=pd.DataFrame(dict2)df3=pd.DataFrame(dict3)deldict1,dict2,dict3df4=pd.concat([df1,df2],axis=1)#水平合并df5=pd.concat([df3,df4],axis=0)#垂直合并,有相同的列名,index屬性伴隨原數(shù)據(jù)框df5.index=range(6)#重新設(shè)置index屬性數(shù)據(jù)框合并函數(shù)第3章

執(zhí)行結(jié)果如下數(shù)據(jù)框關(guān)聯(lián)函數(shù)第3章

merge()函數(shù)類(lèi)似于數(shù)據(jù)庫(kù)中的SQL關(guān)聯(lián)操作語(yǔ)句,指定關(guān)聯(lián)字段之后可進(jìn)行內(nèi)連接(InnerJoin)、左連接(LeftJoin)和右連接(RightJoin)等數(shù)據(jù)操作importpandasaspddict1={'code':['A01','A01','A01','A02','A02','A02','A03','A03'],'month':['01','02','03','01','02','03','01','02'],'price':[10,12,13,15,17,20,10,9]}dict2={'code':['A01','A01','A01','A02','A02','A02'],'month':['01','02','03','01','02','03'],'vol':[10000,10110,20000,10002,12000,21000]}df1=pd.DataFrame(dict1)df2=pd.DataFrame(dict2)deldict1,dict2df_inner=pd.merge(df1,df2,how='inner',on=['code','month']) #內(nèi)連接df_left=pd.merge(df1,df2,how='left',on=['code','month']) #左連接df_right=pd.merge(df1,df2,how='right',on=['code','month']) #右連接數(shù)據(jù)框關(guān)聯(lián)函數(shù)第3章

執(zhí)行結(jié)果如下第3章

數(shù)據(jù)處理包Pandas滾動(dòng)計(jì)算、時(shí)間元素提取映射與離散化分組統(tǒng)計(jì)滾動(dòng)計(jì)算第3章

滾動(dòng)計(jì)算,也稱(chēng)為移動(dòng)計(jì)算,給定一個(gè)數(shù)據(jù)序列,按指定的前移長(zhǎng)度進(jìn)行統(tǒng)計(jì)計(jì)算,比如求和、平均值、最大值、最小值、中位數(shù)、方差、標(biāo)準(zhǔn)差等。這里前移長(zhǎng)度的計(jì)算,包含自身,如果待計(jì)算的數(shù)據(jù)序列小于指定的前移長(zhǎng)度,則無(wú)法計(jì)算,用空值“nan”來(lái)表示。簡(jiǎn)單調(diào)用形式為:S.rolling(N).統(tǒng)計(jì)函數(shù),其中S表示序列,N表示指定的前移長(zhǎng)度importpandasaspdlist_data=[10,4,3,8,15,26,17,80,12,5]series_data=pd.Series(list_data)rolling_sum=series_data.rolling(5).sum()rolling_mean=series_data.rolling(5).mean()rolling_max=series_data.rolling(5).max()rolling_min=series_data.rolling(5)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論