欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

pythonq函數(shù) python @函數(shù)

Python中的常用內(nèi)置函數(shù)有哪些呢?

(1)Lambda函數(shù)

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、東寶ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的東寶網(wǎng)站制作公司

用于創(chuàng)建匿名函數(shù),即沒有名稱的函數(shù)。它只是一個(gè)表達(dá)式,函數(shù)體比def簡(jiǎn)單很多。當(dāng)我們需要?jiǎng)?chuàng)建一個(gè)函數(shù)來(lái)執(zhí)行單個(gè)操作并且可以在一行中編寫時(shí),就可以用到匿名函數(shù)了。

Lamdba的主體是一個(gè)表達(dá)式,而不是一個(gè)代碼塊。僅僅能在lambda表達(dá)式中封裝有限的邏輯進(jìn)去。

利用Lamdba函數(shù),往往可以將代碼簡(jiǎn)化許多。

(2)Map函數(shù)

會(huì)將一個(gè)函數(shù)映射到一個(gè)輸入列表的所有元素上,比如我們先創(chuàng)建了一個(gè)函數(shù)來(lái)返回一個(gè)大寫的輸入單詞,然后將此函數(shù)應(yīng)有到列表colors中的所有元素。

我們還可以使用匿名函數(shù)lamdba來(lái)配合map函數(shù),這樣可以更加精簡(jiǎn)。

(3)Reduce函數(shù)

當(dāng)需要對(duì)一個(gè)列表進(jìn)行一些計(jì)算并返回結(jié)果時(shí),reduce()是個(gè)非常有用的函數(shù)。舉個(gè)例子,當(dāng)需要計(jì)算一個(gè)整數(shù)列表所有元素的乘積時(shí),即可使用reduce函數(shù)實(shí)現(xiàn)。

它與函數(shù)的最大的區(qū)別就是,reduce()里的映射函數(shù)(function)接收兩個(gè)參數(shù),而map接收一個(gè)參數(shù)。

(4)enumerate函數(shù)

用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串)組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在for循環(huán)當(dāng)中。

它的兩個(gè)參數(shù),一個(gè)是序列、迭代器或其他支持迭代對(duì)象;另一個(gè)是下標(biāo)起始位置,默認(rèn)情況從0開始,也可以自定義計(jì)數(shù)器的起始編號(hào)。

(5)Zip函數(shù)

用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表

當(dāng)我們使用zip()函數(shù)時(shí),如果各個(gè)迭代器的元素個(gè)數(shù)不一致,則返回列表長(zhǎng)度與最短的對(duì)象相同。

Python Queue 入門

Queue 叫隊(duì)列,是數(shù)據(jù)結(jié)構(gòu)中的一種,基本上所有成熟的編程語(yǔ)言都內(nèi)置了對(duì) Queue 的支持。

Python 中的 Queue 模塊實(shí)現(xiàn)了多生產(chǎn)者和多消費(fèi)者模型,當(dāng)需要在多線程編程中非常實(shí)用。而且該模塊中的 Queue 類實(shí)現(xiàn)了鎖原語(yǔ),不需要再考慮多線程安全問題。

該模塊內(nèi)置了三種類型的 Queue,分別是 class queue.Queue(maxsize=0) , class queue.LifoQueue(maxsize=0) 和 class queue.PriorityQueue(maxsize=0) 。它們?nèi)齻€(gè)的區(qū)別僅僅是取出時(shí)的順序不一致而已。

Queue 是一個(gè) FIFO 隊(duì)列,任務(wù)按照添加的順序被取出。

LifoQueue 是一個(gè) LIFO 隊(duì)列,類似堆棧,后添加的任務(wù)先被取出。

PriorityQueue 是一個(gè)優(yōu)先級(jí)隊(duì)列,隊(duì)列里面的任務(wù)按照優(yōu)先級(jí)排序,優(yōu)先級(jí)高的先被取出。

如你所見,就是上面所說(shuō)的三種不同類型的內(nèi)置隊(duì)列,其中 maxsize 是個(gè)整數(shù),用于設(shè)置可以放入隊(duì)列中的任務(wù)數(shù)的上限。當(dāng)達(dá)到這個(gè)大小的時(shí)候,插入操作將阻塞至隊(duì)列中的任務(wù)被消費(fèi)掉。如果 maxsize 小于等于零,則隊(duì)列尺寸為無(wú)限大。

向隊(duì)列中添加任務(wù),直接調(diào)用 put() 函數(shù)即可

put() 函數(shù)完整的函數(shù)簽名如下 Queue.put(item, block=True, timeout=None) ,如你所見,該函數(shù)有兩個(gè)可選參數(shù)。

默認(rèn)情況下,在隊(duì)列滿時(shí),該函數(shù)會(huì)一直阻塞,直到隊(duì)列中有空余的位置可以添加任務(wù)為止。如果 timeout 是正數(shù),則最多阻塞 timeout 秒,如果這段時(shí)間內(nèi)還沒有空余的位置出來(lái),則會(huì)引發(fā) Full 異常。

當(dāng) block 為 false 時(shí),timeout 參數(shù)將失效。同時(shí)如果隊(duì)列中沒有空余的位置可添加任務(wù)則會(huì)引發(fā) Full 異常,否則會(huì)直接把任務(wù)放入隊(duì)列并返回,不會(huì)阻塞。

另外,還可以通過(guò) Queue.put_nowait(item) 來(lái)添加任務(wù),相當(dāng)于 Queue.put(item, False) ,不再贅述。同樣,在隊(duì)列滿時(shí),該操作會(huì)引發(fā) Full 異常。

從隊(duì)列中獲取任務(wù),直接調(diào)用 get() 函數(shù)即可。

與 put() 函數(shù)一樣, get() 函數(shù)也有兩個(gè)可選參數(shù),完整簽名如下 Queue.get(block=True, timeout=None) 。

默認(rèn)情況下,當(dāng)隊(duì)列空時(shí)調(diào)用該函數(shù)會(huì)一直阻塞,直到隊(duì)列中有任務(wù)可獲取為止。如果 timeout 是正數(shù),則最多阻塞 timeout 秒,如果這段時(shí)間內(nèi)還沒有任務(wù)可獲取,則會(huì)引發(fā) Empty 異常。

當(dāng) block 為 false 時(shí),timeout 參數(shù)將失效。同時(shí)如果隊(duì)列中沒有任務(wù)可獲取則會(huì)立刻引發(fā) Empty 異常,否則會(huì)直接獲取一個(gè)任務(wù)并返回,不會(huì)阻塞。

另外,還可以通過(guò) Queue.get_nowait() 來(lái)獲取任務(wù),相當(dāng)于 Queue.get(False) ,不再贅述。同樣,在隊(duì)列為空時(shí),該操作會(huì)引發(fā) Empty 異常。

Queue.qsize() 函數(shù)返回隊(duì)列的大小。注意這個(gè)大小不是精確的,qsize() 0 不保證后續(xù)的 get() 不被阻塞,同樣 qsize() maxsize 也不保證 put() 不被阻塞。

如果隊(duì)列為空,返回 True ,否則返回 False 。如果 empty() 返回 True ,不保證后續(xù)調(diào)用的 put() 不被阻塞。類似的,如果 empty() 返回 False ,也不保證后續(xù)調(diào)用的 get() 不被阻塞。

如果隊(duì)列是滿的返回 True ,否則返回 False 。如果 full() 返回 True 不保證后續(xù)調(diào)用的 get() 不被阻塞。類似的,如果 full() 返回 False 也不保證后續(xù)調(diào)用的 put() 不被阻塞。

queue.Queue() 是 FIFO 隊(duì)列,出隊(duì)順序跟入隊(duì)順序是一致的。

queue.LifoQueue() 是 LIFO 隊(duì)列,出隊(duì)順序跟入隊(duì)順序是完全相反的,類似于棧。

優(yōu)先級(jí)隊(duì)列中的任務(wù)順序跟放入時(shí)的順序是無(wú)關(guān)的,而是按照任務(wù)的大小來(lái)排序,最小值先被取出。那任務(wù)比較大小的規(guī)則是怎么樣的呢。

注意,因?yàn)榱斜淼谋容^對(duì)規(guī)則是按照下標(biāo)順序來(lái)比較的,所以在沒有比較出大小之前 ,隊(duì)列中所有列表對(duì)應(yīng)下標(biāo)位置的元素類型要一致。

好比 [2,1] 和 ["1","b"] 因?yàn)榈谝粋€(gè)位置的元素類型不一樣,所以是沒有辦法比較大小的,所以也就放入不了優(yōu)先級(jí)隊(duì)列。

然而對(duì)于 [2,1] 和 [1,"b"] 來(lái)說(shuō)即使第二個(gè)元素的類型不一致也是可以放入優(yōu)先級(jí)隊(duì)列的,因?yàn)橹恍枰容^第一個(gè)位置元素的大小就可以比較出結(jié)果了,就不需要比較第二個(gè)位置元素的大小了。

但是對(duì)于 [2,1] 和 1 [2,"b"] 來(lái)說(shuō),則同樣不可以放入優(yōu)先級(jí)隊(duì)列,因?yàn)樾枰容^第二個(gè)位置的元素才可以比較出結(jié)果,然而第二個(gè)位置的元素類型是不一致的,無(wú)法比較大小。

綜上,也就是說(shuō), 直到在比較出結(jié)果之前,對(duì)應(yīng)下標(biāo)位置的元素類型都是需要一致的 。

下面我們自定義一個(gè)動(dòng)物類型,希望按照年齡大小來(lái)做優(yōu)先級(jí)排序。年齡越小優(yōu)先級(jí)越高。

本章節(jié)介紹了隊(duì)列以及其常用操作。因?yàn)殛?duì)列默認(rèn)實(shí)現(xiàn)了鎖原語(yǔ),因此在多線程編程中就不需要再考慮多線程安全問題了,對(duì)于程序員來(lái)說(shuō)相當(dāng)友好了。

利用Python進(jìn)行數(shù)據(jù)分析(10)-移動(dòng)窗口函數(shù)

Python-for-data-移動(dòng)窗口函數(shù)

本文中介紹的是 ,主要的算子是:

統(tǒng)計(jì)和通過(guò)其他移動(dòng)窗口或者指數(shù)衰減而運(yùn)行的函數(shù),稱之為 移動(dòng)窗口函數(shù)

style scoped="".dataframe tbody tr th:only-of-type { vertical-align: middle; } precode.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } /code/pre/style

2292 rows × 3 columns

rolling算子,行為和resample和groupby類似

rolling可以在S或者DF上通過(guò)一個(gè)window進(jìn)行調(diào)用

style scoped="".dataframe tbody tr th:only-of-type { vertical-align: middle; } precode.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } /code/pre/style

2292 rows × 3 columns

指定一個(gè)常數(shù)衰減因子為觀測(cè)值提供更多的權(quán)重。常用指定衰減因子的方法:使用span(跨度)

一些統(tǒng)計(jì)算子,例如相關(guān)度和協(xié)方差等需要同時(shí)操作兩個(gè)時(shí)間序列。

例如,金融分析中的股票和基準(zhǔn)指數(shù)的關(guān)聯(lián)性問題:計(jì)算時(shí)間序列的百分比變化pct_change()

style scoped="".dataframe tbody tr th:only-of-type { vertical-align: middle; } precode.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } /code/pre/style

在rolling及其相關(guān)方法上使用apply方法提供了一種在移動(dòng)窗口中應(yīng)用自己設(shè)計(jì)的數(shù)組函數(shù)的方法。

唯一要求:該函數(shù)從每個(gè)數(shù)組中產(chǎn)生一個(gè)單值(縮聚),例如使用rolling()...quantile(q)計(jì)算樣本的中位數(shù)

python一個(gè)函數(shù)qh2(x,y,z),表示從x加到y(tǒng),每次增加z怎么處理?

包括y的話:

def qh2(x, y, z):

result = 0

for i in range(x, y+1, z):

result += i

return result

分享名稱:pythonq函數(shù) python @函數(shù)
本文地址:http://chinadenli.net/article26/dojoicg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版外貿(mào)網(wǎng)站建設(shè)品牌網(wǎng)站制作品牌網(wǎng)站設(shè)計(jì)虛擬主機(jī)網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)