![Python的更多的方法_第1頁(yè)](http://file4.renrendoc.com/view/6576f1829f036490dda38c2ccf4f66bf/6576f1829f036490dda38c2ccf4f66bf1.gif)
![Python的更多的方法_第2頁(yè)](http://file4.renrendoc.com/view/6576f1829f036490dda38c2ccf4f66bf/6576f1829f036490dda38c2ccf4f66bf2.gif)
![Python的更多的方法_第3頁(yè)](http://file4.renrendoc.com/view/6576f1829f036490dda38c2ccf4f66bf/6576f1829f036490dda38c2ccf4f66bf3.gif)
![Python的更多的方法_第4頁(yè)](http://file4.renrendoc.com/view/6576f1829f036490dda38c2ccf4f66bf/6576f1829f036490dda38c2ccf4f66bf4.gif)
![Python的更多的方法_第5頁(yè)](http://file4.renrendoc.com/view/6576f1829f036490dda38c2ccf4f66bf/6576f1829f036490dda38c2ccf4f66bf5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Python的列表數(shù)據(jù)類型包含更多的方法list.append(x)把一個(gè)元素添加到列表的結(jié)尾。list.extend(L)將一個(gè)給定列表中的所有元素都添加到另一個(gè)列表中。list.insert(i, x)在指定位置插入一個(gè)元素。第一個(gè)參數(shù)是準(zhǔn)備插入到其前面的那個(gè)元素的索 引,例如 a.insert(0, x)會(huì)插入到整個(gè)列表之前,而 a.insert(len(a), x)相當(dāng)于 a.append(x)。list.remove(x)刪除列表中值為 x的第一個(gè)元素。如果沒(méi)有這樣的元素,就會(huì)返回一個(gè)錯(cuò)誤。list.pop(i)從列表的指定位置刪除元素,并將其返回。如果沒(méi)有指定索引,a.pop()返
2、回最后一個(gè)元素。元素隨即從鏈表中被刪除。(方法中i兩邊的方括號(hào)表示這個(gè)參數(shù)是可選的,而不是要求你輸入一對(duì)方括號(hào),這個(gè)經(jīng)常會(huì)在Python庫(kù)參考手冊(cè)中遇到這樣的標(biāo)記。)list.index(x)返回列表中第一個(gè)值為 x的元素的索引。如果沒(méi)有匹配的元素就會(huì)返回一個(gè)錯(cuò) 誤。list.count(x)返回x在鏈表中出現(xiàn)的次數(shù)。list.sort(cmp=None, key=None, reverse=False)對(duì)列表中的元素進(jìn)行排序(參數(shù)可以用來(lái)自定 義排序方法,參考 sorted()的更詳細(xì)的解釋)。list.reverse()就地倒排鏈表中的元素del listi有個(gè)方法可以從列表中按給定的索引
3、而不是值來(lái)刪除一個(gè)子項(xiàng):del語(yǔ)句。它不同于有返回值的 pop()方法。語(yǔ)句del還可以從列表中刪除切片或清空整個(gè)列表(我們以前介紹過(guò)一個(gè)方法是將空列表賦值給列表的切片)。dict()構(gòu)造函數(shù)可以直接從key-value對(duì)中創(chuàng)建字典:dict(sape, 4139), (guido, 4127), (jack, 4098)dict.fromkeys(a,b,0)dict(zip(a,b,c,1,2,3)k:v for (k,v) in zip(a,b,c,1,2,3)x: x*2 for x in (2, 4, 6)D = dict(a=1,b=2,c=3)c:c*4 for c in Joi
4、nQuantc.lower():c*4+! for c in JoinQuant元組任意無(wú)符號(hào)的對(duì)象,以逗號(hào)隔開(kāi),默認(rèn)為元組(print abc, -4.24e93, 18+6.6j, xyzx, y = 1,2;)元組數(shù)據(jù)類型包含更多的方法:tup.index(x, start, stop)返回元組中start到stop索引中第一個(gè)值為x的元素在整個(gè)列表中的索引。如果沒(méi)有匹配的元素就會(huì)返回一個(gè)錯(cuò)誤。tup.count(x) 返回x在元組中出現(xiàn)的次數(shù)。cmp(tuple1, tuple2)比較元組中兩個(gè)元素。len(tuple)計(jì)算元組元素個(gè)數(shù)。max(tuple)返回元組中元素最大值。min
5、(tuple)返回元組中元素最小值。tuple(seq) 將列表轉(zhuǎn)換為元組。元組不提供字符串、列表和字典中的方法。如果相對(duì)元組排序,通常先得將它轉(zhuǎn)換為列表并使其成為一個(gè)可變對(duì)象,才能獲得使用排序方法,或使用 sorted內(nèi)置方法。集合集合(set)是一個(gè)無(wú)序不重復(fù)元素的集?;竟δ馨P(guān)系運(yùn)算和消除重復(fù)元素。比如支持 union( 聯(lián)合),intersection( 交),difference( 差)和 sysmmetric difference( 對(duì)稱差 集)等數(shù)學(xué)關(guān)系運(yùn)算。所有集合方法S.issubset(t) 如果s是t的子集,則返回 True ,否則返回FalseS.issuperse
6、t(t) 如果s是t 的超集,則返回 True ,否則返回FalseS.unoin(t)返回一個(gè)新集合,該集合是s和t的并集,也可用s1|s2,但不能用s1+s2ntersection(t)返回一個(gè)新集合,該集合是s和t的交集,也可用s1&s2S.difference(t)返回一個(gè)新集合,該集合是 s的成員,但不是t的成員,也可用s1-s2S.symmetric_difference(t)對(duì)稱差分是集合的異或,返回一個(gè)新集合,該集合是s或t的成員,但不是s和t共有的成員,也可用s1As2S.copy()返回一個(gè)新集合,該集合是 s的復(fù)制僅適合可變集合S.update(t) 用t中的元素修改s,
7、即s現(xiàn)在包括s或t的成員ntersection update s中的成員是共同屬于 s和t的元素S.difference update s中的成員是屬于 s但不包含在t中的元素S.symmetric difference update s中的成員更新為那些包含在s或t中,但不是 s和t共有的元素S.add(obj)在集合s中添加對(duì)象objS.remove(obj) 從集合s中刪除對(duì)象obj ,如果obj不是集合s中的元素將有錯(cuò)誤S.discard(obj) 如果obj是集合s中的元素,從集合 s中刪除對(duì)象objS.pop()刪除集合s中的任意一個(gè)對(duì)象,并返回它S.clear()刪除集合s中的所
8、有元素集合推導(dǎo)式語(yǔ)法:a = x for x in abracadabra if x not in abc#abc默認(rèn)是集合Python 提供了 for循環(huán)和while循環(huán)(在Python 中沒(méi)有do.while 循環(huán)),for循環(huán)一 般比while計(jì)數(shù)器循環(huán)運(yùn)行得更快break語(yǔ)句,在語(yǔ)句塊執(zhí)行過(guò)程中終止循環(huán),并且跳出整個(gè)循環(huán)continue 語(yǔ)句,在語(yǔ)句塊執(zhí)行過(guò)程中終止當(dāng)前循環(huán),跳出該次循環(huán),執(zhí)行下一次循環(huán)。pass語(yǔ)句,是空語(yǔ)句,是為了保持程序結(jié)構(gòu)的完整性。不做任何事情,一般用做占位語(yǔ)句。循環(huán)else塊,只有當(dāng)循環(huán)正常離開(kāi)時(shí)才會(huì)執(zhí)行(也就是沒(méi)有碰到break語(yǔ)句)If/While/for
9、定義可變參數(shù)和定義list或tuple參數(shù)相比,僅僅在參數(shù)前面加了一個(gè)*號(hào)。在函數(shù)內(nèi)部,參數(shù)numbers接收到的是一個(gè)tuple ,因此,函數(shù)代碼完全不變。但是,調(diào)用該函數(shù)時(shí),可以傳入任意個(gè)參數(shù),包括 0個(gè)參數(shù)。#必選參數(shù),默認(rèn)參數(shù),*表可變參數(shù),*表關(guān)鍵字參數(shù)def func(a, b, c=0, *args, *kw):print a =, a, b =, b, c =, c, args =, args, kw =, kw調(diào)用函數(shù)時(shí)如何傳入可變參數(shù)和關(guān)鍵字參數(shù)的語(yǔ)法:可變參數(shù)既可以直接傳入:func(1,2, 3),又可以先組裝list或tuple ,再通過(guò)*args傳入:func(*(
10、1,2, 3);關(guān)鍵字參數(shù)既可以直接傳入:func(a=1, b=2),又可以先組裝 dict ,再通過(guò)*kw 傳入:func(*a: 1, b: 2)。使用*args和*kw是Python的習(xí)慣寫法,當(dāng)然也可以用其他參數(shù)名,但最好使用習(xí)慣用 法。Python查找名字的規(guī)則是 LGB規(guī)則:大多數(shù)名字引用在三個(gè)作用域中查找:先局部 (Local),次之全局(Global),再次之內(nèi)置(Build-in)。python 使用lambda來(lái)創(chuàng)建匿名函數(shù):lambda 只是一個(gè)表達(dá)式,函數(shù)體比def簡(jiǎn)單很多。lambda的主體是一個(gè)表達(dá)式,而不是一個(gè)代碼塊。僅僅能在lambda 表達(dá)式中封裝有限的邏輯
11、進(jìn)去。lambda函數(shù)擁有自己的名字空間,且不能訪問(wèn)自有參數(shù)列表之外或全局名字空間里的參數(shù)。雖然lambda函數(shù)看起來(lái)只能寫一行,卻不等同于C或C+的內(nèi)聯(lián)函數(shù),后者的目的是調(diào)用小函數(shù)時(shí)不占用棧內(nèi)存從而增加運(yùn)行效率。import timestart = time.clock()fib=lambda n,x=0,y=1:x if not n else fib(n-1,y,x+y)print fib(20) |end = time.clock()print read: %f s % (end - start)def fib(num):result=0,1for i in range(num-2):r
12、esult.append(result-2+result-1)return resultprint fib(15)斐波那契數(shù)列:斐波那契數(shù)列由十三世紀(jì)意大利數(shù)學(xué)家斐波那契發(fā)現(xiàn)。數(shù)列中的一系列數(shù)字常被人們稱之為神奇數(shù)奇異數(shù)。具體數(shù)列為:0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , 89 , 144 ,233等,從該數(shù)列的第三項(xiàng)數(shù)字開(kāi)始,每個(gè)數(shù)字等于前兩個(gè)相鄰數(shù)字之和。而斐波那契數(shù)列中相鄰兩項(xiàng)之商就接近黃金分割數(shù)0.618 ,與這一數(shù)字相關(guān)的0.191 、0.382 、0.5和0.809 等數(shù)字就構(gòu)成了股市中關(guān)于市場(chǎng)時(shí)間和空間計(jì)算的重要數(shù)字。在金融
13、市場(chǎng)的分析方法中,斐波那契數(shù)字頻頻出現(xiàn)。例如,在波浪理論中,一輪牛市行情可以用1個(gè)上升浪來(lái)表示,也可以用5個(gè)低一個(gè)層次的小浪來(lái)表示,還可繼續(xù)細(xì)分為21個(gè)或89個(gè)小浪;在空間分析體系中,反彈行情的高度通常是前方下降趨勢(shì)幅度的0.382 、0.5、0.618 ;回調(diào)行情通常是前方上升趨勢(shì)的0.382 、0.5和0.618 。一、常見(jiàn)的幾種迭代器迭代器在python 中是以C語(yǔ)言的速度運(yùn)行的,而 while循環(huán)版本則是通過(guò) Python 虛擬 機(jī)運(yùn)行Python 字節(jié)碼的。rangezip可以讓我們使用for循環(huán)來(lái)并行使用多個(gè)序列,zip會(huì)取得一個(gè)或多個(gè)序列為參數(shù),然后返回元組的列表,將這些序列中的
14、并排的元素配成對(duì)。enumerate可以獲得元素和元素的偏移值map map會(huì)對(duì)一個(gè)序列對(duì)象中的每一個(gè)元素應(yīng)用被傳入的函數(shù),并且返回一個(gè)包含所有函數(shù)調(diào)用結(jié)果的一個(gè)列表。filter 基于某一測(cè)試函數(shù)過(guò)濾出一些元素reduce 對(duì)每對(duì)元素都應(yīng)用函數(shù)并運(yùn)行到最后結(jié)果Range: S = abcdefghijkfor i in range(0,len(S),2):print SiS = abcdefghijkfor c in S:2:print cZip: L1 = 1,2,3,4L2 = 5,6,7,8for (x,y) in zip(L1,L2):print (x,y,x+y)#構(gòu)造字典keys
15、 = a,b,cvals = 1,3,5D2 = for (k,v) in zip(keys,vals): D2k=vEnumerate: seasons = Spring, Summer, Fall, Winterdict(enumerate(seasons, start=3)Out1: 3: Spring, 4: Summer, 5: Fall, 6: WinterMap: map(lambda x: x+3),1,2,3,4) Out2: 4, 5, 6, 7Reduce: reduce(lambda x,y:x+y),1,2,3,4) Out3: 10|import operator,
16、functoolsfunctools.reduce(operator.add,2,4,6)Out4: 12列表推導(dǎo)式:列表推導(dǎo)式由包含一個(gè)表達(dá)式的括號(hào)組成,表達(dá)式后面跟隨一個(gè) for子句,之后可以有零 或多個(gè)for或if子句。結(jié)果是一個(gè)列表,由表達(dá)式依據(jù)其后面的for和if子句上下文計(jì)算而來(lái)的結(jié)果構(gòu)成。Eg: (x, y) for x in 1,2,3 for y in 3,1,4 if x != yOut: (1,3), (1,4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)matrix = 1,2, 3, 4,5, 6, 7, 8,9, 10, 11,
17、12list(zip(*matrix)Out: 1,5, 9, 2, 6, 10, 3, 7, 11, 4, 8,12Numpy 庫(kù)數(shù)組的一些屬性:a.ndim #查看行數(shù)a.shape #查看數(shù)組的維數(shù),返回(n,m),其中n為行數(shù),m為列數(shù)。a.dtype #查看元素的類型,比如 32 、numpy.float64Numpy的特殊數(shù)組主要有以下幾種:zeros數(shù)組:全零數(shù)組,元素全為0 ;np.zeros(2,3)ones數(shù)組:全1數(shù)組,元素全為1;np.ones(3,4)empty 數(shù)組:空數(shù)組,元素全近似為0 ;np.empty(3,2)序列數(shù)組:arange 函數(shù):他與Python
18、的range函數(shù)相似,但他屬于Numpy 庫(kù),其參數(shù)依次為:開(kāi)始值、結(jié)束值、步長(zhǎng)。Eg: In 22: np.arange(1,20,5)Out22: array( 1, 6, 11, 16)linspace 函數(shù)創(chuàng)建等差序列數(shù)組,其參數(shù)依次為:開(kāi)始值、結(jié)束值、元素?cái)?shù)量。Eg: In 23: np.linspace(0,2,9)Out23: array( 0. , 0.25, 0.5,0.75, 1. , 1.25, 1.5,1.75, 2.)#bi,j表示什么?b = np.ones(2,3)b1,2 = 9矩陣;矩陣的常用數(shù)學(xué)運(yùn)算有轉(zhuǎn)置(A.T )、乘法(A * B)、求逆(A.I )、解
19、線性方程(solve(A,B)等。PandasSeries: 一維數(shù)組,與 Numpy中的一維array類似。二者與 Python基本的數(shù)據(jù)結(jié)構(gòu) List 也很相近,其區(qū)別是:List中的元素可以是不同的數(shù)據(jù)類型,而 Array和Series中則只允許存儲(chǔ)相同的數(shù)據(jù)類型,這樣可以更有效的使用內(nèi)存,提高運(yùn)算效率。DataFrame:二維的表格型數(shù)據(jù)結(jié)構(gòu)。很多功能與 R中的data.frame類似。可以將DataFrame理解為Series的容器。以下的內(nèi)容主要以DataFrame為主。Panel :三維的數(shù)組,可以理解為DataFrame的容器。DataFrame: eg: dates = pd
20、.date_range(20130101,periods=6)Out6:DatetimeIndex(2013-01-01, 2013-01-02, 2013-01-03, 2013-01-04,2013-01-05,2013-01-06,dtype=datetime64ns, freq=D, tz=None) #df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list(ABCD)查看前幾條數(shù)據(jù):df.head();查看后幾條數(shù)據(jù):df.tail()查看 DataFrame的值:df.values查看 DataFrame的索引
21、:df.index查看 DataFrame的歹U名:df.columns使用describe。函數(shù)對(duì)于數(shù)據(jù)的快速統(tǒng)計(jì)匯總:df.describe()按列對(duì) DataFrame進(jìn)行排序:df.sort(columns=open)選擇數(shù)據(jù):通過(guò)下標(biāo)選取數(shù)據(jù):dfopen df.open(返回一個(gè) Series )dfopen,close (選取多列)dfa:b(起始的索引名稱到結(jié)束索引名稱選取數(shù)據(jù),含 b列)df0:3 (從 0 到 2 ,不含 3 )df,2016-07-05:2016-07-08(返回一個(gè) df )使用標(biāo)簽選取數(shù)據(jù):df.loc行標(biāo)簽,列標(biāo)簽df.loca:b # 選取ab 兩
22、行數(shù)據(jù)d f.loc:,open # 選取 open 列的數(shù)據(jù)df.loc的第一個(gè)參數(shù)是行標(biāo)簽,第二個(gè)參數(shù)為列標(biāo)簽(可選參數(shù),默認(rèn)為所有列標(biāo)簽),兩個(gè)參數(shù)既可以是列表也可以是單個(gè)字符,如果兩個(gè)參數(shù)都為列表則返回的是 DataFrame ,否則,則為Series 。PS : loc 為 location的縮寫。使用位置選取數(shù)據(jù):df.iloc行位置,列位置df.iloc1,1 # 選取第二行,第二列的值,返回的為單個(gè)值df.iloc0,2,: #選取第一行及第三行的數(shù)據(jù)df.iloc0:2,: # 選取第一行到第三行(不包含)的數(shù)據(jù)df.iloc:,1 #選取所有記錄的第二列的值,返回的為一個(gè)
23、Seriesdf.iloc1,: #選取第一行數(shù)據(jù),返回的為一個(gè) SeriesPS : iloc 則為 integer & location 的縮寫更廣義的切片方式是使用.ix,它自動(dòng)根據(jù)給到的索引類型判斷是使用位置還是標(biāo)簽進(jìn)行切片。通過(guò)邏輯指針進(jìn)行數(shù)據(jù)切片:df邏輯條件dfdf.one = 2 # 單個(gè)邏輯條件df(df.one =1 ) & (df.one idxmax計(jì)算能夠獲取到最大值和最小值得索引值quantile計(jì)算樣本的分位數(shù)(0到1)sum值的總和mean值得平均數(shù)median值得算術(shù)中位數(shù)(50%分位數(shù))mad根據(jù)平均值計(jì)算平均絕對(duì)離差var樣本值的方差std樣本值的標(biāo)準(zhǔn)差skew樣本值得偏度(三階矩)kurt樣本值得峰度(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 業(yè)主物業(yè)申請(qǐng)書
- 怎樣寫調(diào)休申請(qǐng)書
- 2024-2025年高中化學(xué)1.1第1課時(shí)化學(xué)實(shí)驗(yàn)安全過(guò)濾和蒸發(fā)講義+練習(xí)新人教版必修1
- 2024-2025學(xué)年高中地理課時(shí)作業(yè)8城市化過(guò)程對(duì)地理環(huán)境的影響湘教版必修2
- 2024-2025學(xué)年高中數(shù)學(xué)第三章概率3.1隨機(jī)事件的概率3.1.1頻率與概率學(xué)案北師大版必修3
- 2024-2025學(xué)年高中數(shù)學(xué)第三章概率3.2.1古典概型練習(xí)含解析新人教A版必修3
- 2024-2025年新教材高中生物第3章第1節(jié)細(xì)胞膜的結(jié)構(gòu)和功能教案新人教版必修1
- 現(xiàn)代企業(yè)營(yíng)銷策略與市場(chǎng)開(kāi)拓方法研究
- 環(huán)保技術(shù)在辦公設(shè)備中的應(yīng)用實(shí)例
- 2025年度物流企業(yè)信息化安全防護(hù)合同
- 預(yù)防艾滋病、梅毒和乙肝母嬰傳播服務(wù)流程圖
- 供應(yīng)鏈網(wǎng)絡(luò)安全解決方案
- 兒科影像診斷學(xué)課件
- NPI管理流程文檔
- 閥門噪聲計(jì)算程序(IEC)(帶公式)
- 2022年RDA5807m+IIC收音機(jī)51單片機(jī)C程序上課講義
- 雅馬哈貼片機(jī)_修機(jī)_調(diào)機(jī)的經(jīng)驗(yàn)之談1
- 義務(wù)教育《勞動(dòng)》課程標(biāo)準(zhǔn)(2022年版)
- 2018年黑龍江統(tǒng)招專升本公共英語(yǔ)真題
- 大學(xué)物理光學(xué)答案
- 老撾10大經(jīng)濟(jì)特區(qū)
評(píng)論
0/150
提交評(píng)論