差分是一種變換時(shí)間序列數(shù)據(jù)集的方法。
創(chuàng)新互聯(lián)長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為晉城企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、網(wǎng)站制作,晉城網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
它可以用于消除序列對時(shí)間性的依賴性,即所謂的時(shí)間性依賴。這包含趨勢和周期性的結(jié)構(gòu)。
不同的方法可以幫助穩(wěn)定時(shí)間序列的均值,消除時(shí)間序列的變化,從而消除(或減少)趨勢和周期性。
歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識,本文學(xué)習(xí)的是《Python中集合的交集、并集、差集和對稱差集運(yùn)算方法詳解》。主要講的是集合運(yùn)算的相關(guān)的概念,及運(yùn)算方法,包括:集合的交集、集合的并集、集合的差集、集合的對稱差集、集合的交集運(yùn)算方法、集合的并集運(yùn)算方法、集合的差集運(yùn)算方法、集合的對稱差集運(yùn)算方法。
在Python中,集合最常用的操作就是進(jìn)行交集、并集、差集和對稱差集的運(yùn)算。
要想學(xué)習(xí)集合的交集、并集、差集和對稱差集運(yùn)算方法,首先我們來了解這些名詞的含義:
設(shè)A、B兩個(gè)集合,由所有屬于集合A且屬于集合B的元素所組成的集合,叫做集合A與集合B的交集。在Python中,進(jìn)行交集運(yùn)算時(shí)使用“”符號。
給定兩個(gè)集合A、B,把他們所有的元素合并在一起組成的集合,叫做集合A與集合B的并集。在Python中,進(jìn)行并集運(yùn)算時(shí)使用“|”符號。
設(shè)A,B是兩個(gè)集合,則所有屬于A且不屬于B的元素構(gòu)成的集合,叫做集合A與集合B的差集。在Python中,進(jìn)行差集運(yùn)算時(shí)使用“-”符號。
對稱差集也稱為對稱差分或者補(bǔ)集,設(shè)A,B是兩個(gè)集合,所有不相同的集合,叫做集合A與集合B的對稱差集(對稱差分或者補(bǔ)集)。在Python中,進(jìn)行對稱差集運(yùn)算時(shí)使用“^”符號。
上面都是概念性的描述,下面站長在線來舉實(shí)際的場景來對交集、并集、差集和對稱差集運(yùn)算方法進(jìn)行深入淺出的解讀。
場景模擬:某高中三年級,文科班高考的科目是語文、數(shù)學(xué)、英語、政治、 歷史 和地理。理科班高考的科目是語文、數(shù)學(xué)、英語、物理、化學(xué)和生物。
設(shè)定集合A為文科班高考的科目,集合B為理科班高考的科目。
A = {'語文','數(shù)學(xué)','英語','政治',' 歷史 ','地理'}
B = {'語文','數(shù)學(xué)','英語','物理','化學(xué)','生物'}
我們使用集合的交集運(yùn)算的時(shí)候可以采用兩種方式,一種是使用“”運(yùn)算符進(jìn)行操作,另一種是使用 intersection() 方法來實(shí)現(xiàn)。
運(yùn)行結(jié)果:
運(yùn)行結(jié)果:
同理集合B和集合A的交集也是一樣。我這里就不重復(fù)了,自己去體驗(yàn)一下。
集合的并集運(yùn)算也有兩種方式,一種是使用“|”運(yùn)算符進(jìn)行操作,另一種是使用union()方法來實(shí)現(xiàn)。
運(yùn)行結(jié)果如下:
運(yùn)行結(jié)果為:
同理集合B和集合A的并集也是一樣。自己去體驗(yàn)一下吧!
集合的差集運(yùn)算也有兩種方式,一種是使用“-”運(yùn)算符進(jìn)行操作,另一種是使用difference()方法來實(shí)現(xiàn)。
運(yùn)行結(jié)果為:
上面是集合A和集合B的差集,但是集合B和集合A的差集就不是一樣的了哦!
運(yùn)行結(jié)果為:
從上面可以看出,集合A和集合B的差集 與 集合B和集合A的差集是不一樣的,(A - B)是A中存在的部分,(B - A)是B中存在的部分。
運(yùn)行結(jié)果:
同理,使用difference()方法進(jìn)行集合B和集合A的差集也是不同的
運(yùn)行結(jié)果:
集合的差集運(yùn)算也有兩種方式,一種是使用“^”運(yùn)算符進(jìn)行操作,另一種是使用symmetric_difference()方法來實(shí)現(xiàn)。
運(yùn)行結(jié)果為:
運(yùn)行結(jié)果為:
同樣的,集合B與集合A的對稱差集也是一樣,自己去體驗(yàn)一下。
我們對集合的交集、并集、差集和對稱差集運(yùn)算方法全部詳細(xì)的講解了一遍,通過運(yùn)行結(jié)果,我們得出結(jié)論:
集合中進(jìn)行交集、并集、對稱差集進(jìn)行運(yùn)算的時(shí)候,集合A與集合B,位置替換的時(shí)候,結(jié)果相同。
集合中進(jìn)行差集運(yùn)算的時(shí)候,集合A與集合B,位置替換的時(shí)候,結(jié)果不同,為前面那個(gè)集合獨(dú)立存在的部分。
到此為止,本節(jié)課的內(nèi)容《Python中集合的交集、并集、差集和對稱差集運(yùn)算方法詳解》就完全講完了,主要講的集合運(yùn)算的相關(guān)的概念,及運(yùn)算方法,包括:集合的交集、集合的并集、集合的差集、集合的對稱差集、集合的交集運(yùn)算方法、集合的并集運(yùn)算方法、集合的差集運(yùn)算方法、集合的對稱差集運(yùn)算方法。
處理過與時(shí)間有關(guān)的數(shù)據(jù)的人都知道,差分變化經(jīng)常用來使得結(jié)果更加直觀。在這篇文章里將會(huì)教你如何用Python來實(shí)現(xiàn)這一目的,讀完這篇文章,你將會(huì)掌握以下技能:
1、知道什么是差分變換以及滯后差分和差分階數(shù)的設(shè)置
2、如何手動(dòng)計(jì)算差分
3、怎樣使用Pandas內(nèi)置的差分函數(shù)
所以,讓我們趕緊開始吧!
為什么要對時(shí)間序列數(shù)據(jù)進(jìn)行差分?
首先來看下為什么要對數(shù)據(jù)進(jìn)行差分變化,差分變化可以消除數(shù)據(jù)對時(shí)間的依賴性,也就是降低時(shí)間對數(shù)據(jù)的影響,這些影響通常包括數(shù)據(jù)的變化趨勢以及數(shù)據(jù)周期性變化的規(guī)律。進(jìn)行差分操作時(shí),一般用現(xiàn)在的觀測值減去上個(gè)時(shí)刻的值就得到差分結(jié)果,就是這么簡單,按照這種定義可以計(jì)算一系列的差分變換。
滯后差分
連續(xù)觀測值之間的差分變換叫做一階滯后差分。滯后差分的步長需要根據(jù)數(shù)據(jù)的時(shí)間結(jié)構(gòu)做調(diào)整,例如對于周期性變化的數(shù)據(jù),這個(gè)時(shí)間步長就是數(shù)據(jù)變化的周期。
差分階數(shù)
在進(jìn)行一次差分之后,時(shí)間項(xiàng)的作用并沒有完全去掉,將會(huì)繼續(xù)對差分結(jié)果進(jìn)行差分變化,直到完全消除時(shí)間項(xiàng)的影響因素為止,這個(gè)過程中進(jìn)行的差分操作次數(shù)就稱為差分階數(shù)。
洗發(fā)水銷售數(shù)據(jù)
這份數(shù)據(jù)是三年來每月洗發(fā)水的銷售情況,總共有36個(gè)數(shù)據(jù)記錄,原始數(shù)據(jù)來自Makridakis, Wheelwright和 Hyndman (1998).,可以從下面的地址下到數(shù)據(jù):
下面的代碼將會(huì)導(dǎo)入數(shù)據(jù)并將結(jié)果畫成折線圖,如下所示:
手動(dòng)差分
在這一部分中,我們將會(huì)自定義一個(gè)函數(shù)來實(shí)現(xiàn)差分變換,這個(gè)函數(shù)將會(huì)對提供的數(shù)據(jù)進(jìn)行遍歷并根據(jù)指定的時(shí)間間隔進(jìn)行差分變換。具體代碼如下:
從上面的代碼中可以看到該函數(shù)將會(huì)根據(jù)指定的時(shí)間間隔來對數(shù)據(jù)進(jìn)行變換,一般來說,通常會(huì)計(jì)算間隔一個(gè)數(shù)據(jù)的差分,這樣的結(jié)果比較可靠。當(dāng)然,我們也可以將上面的函數(shù)進(jìn)行一定的改進(jìn),加入差分階數(shù)的指定。
下面將這函數(shù)應(yīng)用到上面洗發(fā)水銷售的數(shù)據(jù)中去,運(yùn)行之后繪出下面的圖,具體如下:
自動(dòng)差分
Pandas庫里提供了一個(gè)函數(shù)可以自動(dòng)計(jì)算數(shù)據(jù)的差分,這個(gè)函數(shù)是diff(),輸入的數(shù)據(jù)是“series'或”DataFrame'類型的,像前面自定義函數(shù)那樣,我們也可以指定差分的時(shí)間間隔,不過在這里這個(gè)參數(shù)叫做周期。
下面的例子是用Pandas內(nèi)置函數(shù)來計(jì)算差分的,數(shù)據(jù)類型是series的,使用Pandas內(nèi)置函數(shù)的好處是代碼工作量減少了不少,而且繪出的圖中包含更詳細(xì)的信息,具體效果如下:
總結(jié)
讀完本文想必你已經(jīng)學(xué)會(huì)用python來實(shí)現(xiàn)對數(shù)據(jù)的差分了,尤其是對差分的概念,手動(dòng)差分,以及使用Pandas內(nèi)置函數(shù)進(jìn)行差分都有所了解了。如果有什么好的想法歡迎在評論欄里留下。