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

python數(shù)據(jù)極差函數(shù),用python曲線函數(shù)的極值

如何用Python對數(shù)據(jù)進(jìn)行差分

處理過與時(shí)間有關(guān)的數(shù)據(jù)的人都知道,差分變化經(jīng)常用來使得結(jié)果更加直觀。在這篇文章里將會(huì)教你如何用Python來實(shí)現(xiàn)這一目的,讀完這篇文章,你將會(huì)掌握以下技能:

創(chuàng)新互聯(lián)長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為臨淄企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站建設(shè),臨淄網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

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)行差分都有所了解了。如果有什么好的想法歡迎在評論欄里留下。

Python如何使用sd()函數(shù)求數(shù)據(jù)的標(biāo)準(zhǔn)差

python的求

標(biāo)準(zhǔn)差

的函數(shù)是std,是numpy庫的成員,

如果非要

用sd函數(shù)求標(biāo)準(zhǔn)差,也不是不行(from

numpy

import

std

as

sd)。其參數(shù)是所需求標(biāo)準(zhǔn)差的矩陣或列表,

返回值

即標(biāo)準(zhǔn)差。示范如下:

import

numpy

as

np;

from

numpy

import

std

as

sd;

print([1,

2,3],"的標(biāo)準(zhǔn)差是);

print(sd([1,2,3]));

python數(shù)據(jù)統(tǒng)計(jì)分析

1. 常用函數(shù)庫

? scipy包中的stats模塊和statsmodels包是python常用的數(shù)據(jù)分析工具,scipy.stats以前有一個(gè)models子模塊,后來被移除了。這個(gè)模塊被重寫并成為了現(xiàn)在獨(dú)立的statsmodels包。

?scipy的stats包含一些比較基本的工具,比如:t檢驗(yàn),正態(tài)性檢驗(yàn),卡方檢驗(yàn)之類,statsmodels提供了更為系統(tǒng)的統(tǒng)計(jì)模型,包括線性模型,時(shí)序分析,還包含數(shù)據(jù)集,做圖工具等等。

2. 小樣本數(shù)據(jù)的正態(tài)性檢驗(yàn)

(1) 用途

?夏皮羅維爾克檢驗(yàn)法 (Shapiro-Wilk) 用于檢驗(yàn)參數(shù)提供的一組小樣本數(shù)據(jù)線是否符合正態(tài)分布,統(tǒng)計(jì)量越大則表示數(shù)據(jù)越符合正態(tài)分布,但是在非正態(tài)分布的小樣本數(shù)據(jù)中也經(jīng)常會(huì)出現(xiàn)較大的W值。需要查表來估計(jì)其概率。由于原假設(shè)是其符合正態(tài)分布,所以當(dāng)P值小于指定顯著水平時(shí)表示其不符合正態(tài)分布。

?正態(tài)性檢驗(yàn)是數(shù)據(jù)分析的第一步,數(shù)據(jù)是否符合正態(tài)性決定了后續(xù)使用不同的分析和預(yù)測方法,當(dāng)數(shù)據(jù)不符合正態(tài)性分布時(shí),我們可以通過不同的轉(zhuǎn)換方法把非正太態(tài)數(shù)據(jù)轉(zhuǎn)換成正態(tài)分布后再使用相應(yīng)的統(tǒng)計(jì)方法進(jìn)行下一步操作。

(2) 示例

(3) 結(jié)果分析

?返回結(jié)果 p-value=0.029035290703177452,比指定的顯著水平(一般為5%)小,則拒絕假設(shè):x不服從正態(tài)分布。

3. 檢驗(yàn)樣本是否服務(wù)某一分布

(1) 用途

?科爾莫戈羅夫檢驗(yàn)(Kolmogorov-Smirnov test),檢驗(yàn)樣本數(shù)據(jù)是否服從某一分布,僅適用于連續(xù)分布的檢驗(yàn)。下例中用它檢驗(yàn)正態(tài)分布。

(2) 示例

(3) 結(jié)果分析

?生成300個(gè)服從N(0,1)標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù),在使用k-s檢驗(yàn)該數(shù)據(jù)是否服從正態(tài)分布,提出假設(shè):x從正態(tài)分布。最終返回的結(jié)果,p-value=0.9260909172362317,比指定的顯著水平(一般為5%)大,則我們不能拒絕假設(shè):x服從正態(tài)分布。這并不是說x服從正態(tài)分布一定是正確的,而是說沒有充分的證據(jù)證明x不服從正態(tài)分布。因此我們的假設(shè)被接受,認(rèn)為x服從正態(tài)分布。如果p-value小于我們指定的顯著性水平,則我們可以肯定地拒絕提出的假設(shè),認(rèn)為x肯定不服從正態(tài)分布,這個(gè)拒絕是絕對正確的。

4.方差齊性檢驗(yàn)

(1) 用途

?方差反映了一組數(shù)據(jù)與其平均值的偏離程度,方差齊性檢驗(yàn)用以檢驗(yàn)兩組或多組數(shù)據(jù)與其平均值偏離程度是否存在差異,也是很多檢驗(yàn)和算法的先決條件。

(2) 示例

(3) 結(jié)果分析

?返回結(jié)果 p-value=0.19337536323599344, 比指定的顯著水平(假設(shè)為5%)大,認(rèn)為兩組數(shù)據(jù)具有方差齊性。

5. 圖形描述相關(guān)性

(1) 用途

?最常用的兩變量相關(guān)性分析,是用作圖描述相關(guān)性,圖的橫軸是一個(gè)變量,縱軸是另一變量,畫散點(diǎn)圖,從圖中可以直觀地看到相關(guān)性的方向和強(qiáng)弱,線性正相關(guān)一般形成由左下到右上的圖形;負(fù)面相關(guān)則是從左上到右下的圖形,還有一些非線性相關(guān)也能從圖中觀察到。

(2) 示例

(3) 結(jié)果分析

?從圖中可以看到明顯的正相關(guān)趨勢。

6. 正態(tài)資料的相關(guān)分析

(1) 用途

?皮爾森相關(guān)系數(shù)(Pearson correlation coefficient)是反應(yīng)兩變量之間線性相關(guān)程度的統(tǒng)計(jì)量,用它來分析正態(tài)分布的兩個(gè)連續(xù)型變量之間的相關(guān)性。常用于分析自變量之間,以及自變量和因變量之間的相關(guān)性。

(2) 示例

(3) 結(jié)果分析

?返回結(jié)果的第一個(gè)值為相關(guān)系數(shù)表示線性相關(guān)程度,其取值范圍在[-1,1],絕對值越接近1,說明兩個(gè)變量的相關(guān)性越強(qiáng),絕對值越接近0說明兩個(gè)變量的相關(guān)性越差。當(dāng)兩個(gè)變量完全不相關(guān)時(shí)相關(guān)系數(shù)為0。第二個(gè)值為p-value,統(tǒng)計(jì)學(xué)上,一般當(dāng)p-value0.05時(shí),可以認(rèn)為兩變量存在相關(guān)性。

7. 非正態(tài)資料的相關(guān)分析

(1) 用途

?斯皮爾曼等級(jí)相關(guān)系數(shù)(Spearman’s correlation coefficient for ranked data ),它主要用于評價(jià)順序變量間的線性相關(guān)關(guān)系,在計(jì)算過程中,只考慮變量值的順序(rank, 值或稱等級(jí)),而不考慮變量值的大小。常用于計(jì)算類型變量的相關(guān)性。

(2) 示例

(3) 結(jié)果分析

?返回結(jié)果的第一個(gè)值為相關(guān)系數(shù)表示線性相關(guān)程度,本例中correlation趨近于1表示正相關(guān)。第二個(gè)值為p-value,p-value越小,表示相關(guān)程度越顯著。

8. 單樣本T檢驗(yàn)

(1) 用途

?單樣本T檢驗(yàn),用于檢驗(yàn)數(shù)據(jù)是否來自一致均值的總體,T檢驗(yàn)主要是以均值為核心的檢驗(yàn)。注意以下幾種T檢驗(yàn)都是雙側(cè)T檢驗(yàn)。

(2) 示例

(3) 結(jié)果分析

?本例中生成了2列100行的數(shù)組,ttest_1samp的第二個(gè)參數(shù)是分別對兩列估計(jì)的均值,p-value返回結(jié)果,第一列1.47820719e-06比指定的顯著水平(一般為5%)小,認(rèn)為差異顯著,拒絕假設(shè);第二列2.83088106e-01大于指定顯著水平,不能拒絕假設(shè):服從正態(tài)分布。

9. 兩獨(dú)立樣本T檢驗(yàn)

(1) 用途

?由于比較兩組數(shù)據(jù)是否來自于同一正態(tài)分布的總體。注意:如果要比較的兩組數(shù)據(jù)不滿足方差齊性, 需要在ttest_ind()函數(shù)中添加參數(shù)equal_var = False。

(2) 示例

(3) 結(jié)果分析

?返回結(jié)果的第一個(gè)值為統(tǒng)計(jì)量,第二個(gè)值為p-value,pvalue=0.19313343989106416,比指定的顯著水平(一般為5%)大,不能拒絕假設(shè),兩組數(shù)據(jù)來自于同一總結(jié),兩組數(shù)據(jù)之間無差異。

10. 配對樣本T檢驗(yàn)

(1) 用途

?配對樣本T檢驗(yàn)可視為單樣本T檢驗(yàn)的擴(kuò)展,檢驗(yàn)的對象由一群來自正態(tài)分布獨(dú)立樣本更改為二群配對樣本觀測值之差。它常用于比較同一受試對象處理的前后差異,或者按照某一條件進(jìn)行兩兩配對分別給與不同處理的受試對象之間是否存在差異。

(2) 示例

(3) 結(jié)果分析

?返回結(jié)果的第一個(gè)值為統(tǒng)計(jì)量,第二個(gè)值為p-value,pvalue=0.80964043445811551,比指定的顯著水平(一般為5%)大,不能拒絕假設(shè)。

11. 單因素方差分析

(1) 用途

?方差分析(Analysis of Variance,簡稱ANOVA),又稱F檢驗(yàn),用于兩個(gè)及兩個(gè)以上樣本均數(shù)差別的顯著性檢驗(yàn)。方差分析主要是考慮各組之間的平均數(shù)差別。

?單因素方差分析(One-wayAnova),是檢驗(yàn)由單一因素影響的多組樣本某因變量的均值是否有顯著差異。

?當(dāng)因變量Y是數(shù)值型,自變量X是分類值,通常的做法是按X的類別把實(shí)例成分幾組,分析Y值在X的不同分組中是否存在差異。

(2) 示例

(3) 結(jié)果分析

?返回結(jié)果的第一個(gè)值為統(tǒng)計(jì)量,它由組間差異除以組間差異得到,上例中組間差異很大,第二個(gè)返回值p-value=6.2231520821576832e-19小于邊界值(一般為0.05),拒絕原假設(shè), 即認(rèn)為以上三組數(shù)據(jù)存在統(tǒng)計(jì)學(xué)差異,并不能判斷是哪兩組之間存在差異 。只有兩組數(shù)據(jù)時(shí),效果同 stats.levene 一樣。

12. 多因素方差分析

(1) 用途

?當(dāng)有兩個(gè)或者兩個(gè)以上自變量對因變量產(chǎn)生影響時(shí),可以用多因素方差分析的方法來進(jìn)行分析。它不僅要考慮每個(gè)因素的主效應(yīng),還要考慮因素之間的交互效應(yīng)。

(2) 示例

(3) 結(jié)果分析

?上述程序定義了公式,公式中,"~"用于隔離因變量和自變量,”+“用于分隔各個(gè)自變量, ":"表示兩個(gè)自變量交互影響。從返回結(jié)果的P值可以看出,X1和X2的值組間差異不大,而組合后的T:G的組間有明顯差異。

13. 卡方檢驗(yàn)

(1) 用途

?上面介紹的T檢驗(yàn)是參數(shù)檢驗(yàn),卡方檢驗(yàn)是一種非參數(shù)檢驗(yàn)方法。相對來說,非參數(shù)檢驗(yàn)對數(shù)據(jù)分布的要求比較寬松,并且也不要求太大數(shù)據(jù)量。卡方檢驗(yàn)是一種對計(jì)數(shù)資料的假設(shè)檢驗(yàn)方法,主要是比較理論頻數(shù)和實(shí)際頻數(shù)的吻合程度。常用于特征選擇,比如,檢驗(yàn)?zāi)腥撕团嗽谑欠窕加懈哐獕荷嫌袩o區(qū)別,如果有區(qū)別,則說明性別與是否患有高血壓有關(guān),在后續(xù)分析時(shí)就需要把性別這個(gè)分類變量放入模型訓(xùn)練。

?基本數(shù)據(jù)有R行C列, 故通稱RC列聯(lián)表(contingency table), 簡稱RC表,它是觀測數(shù)據(jù)按兩個(gè)或更多屬性(定性變量)分類時(shí)所列出的頻數(shù)表。

(2) 示例

(3) 結(jié)果分析

?卡方檢驗(yàn)函數(shù)的參數(shù)是列聯(lián)表中的頻數(shù),返回結(jié)果第一個(gè)值為統(tǒng)計(jì)量值,第二個(gè)結(jié)果為p-value值,p-value=0.54543425102570975,比指定的顯著水平(一般5%)大,不能拒絕原假設(shè),即相關(guān)性不顯著。第三個(gè)結(jié)果是自由度,第四個(gè)結(jié)果的數(shù)組是列聯(lián)表的期望值分布。

14. 單變量統(tǒng)計(jì)分析

(1) 用途

?單變量統(tǒng)計(jì)描述是數(shù)據(jù)分析中最簡單的形式,其中被分析的數(shù)據(jù)只包含一個(gè)變量,不處理原因或關(guān)系。單變量分析的主要目的是通過對數(shù)據(jù)的統(tǒng)計(jì)描述了解當(dāng)前數(shù)據(jù)的基本情況,并找出數(shù)據(jù)的分布模型。

?單變量數(shù)據(jù)統(tǒng)計(jì)描述從集中趨勢上看,指標(biāo)有:均值,中位數(shù),分位數(shù),眾數(shù);從離散程度上看,指標(biāo)有:極差、四分位數(shù)、方差、標(biāo)準(zhǔn)差、協(xié)方差、變異系數(shù),從分布上看,有偏度,峰度等。需要考慮的還有極大值,極小值(數(shù)值型變量)和頻數(shù),構(gòu)成比(分類或等級(jí)變量)。

?此外,還可以用統(tǒng)計(jì)圖直觀展示數(shù)據(jù)分布特征,如:柱狀圖、正方圖、箱式圖、頻率多邊形和餅狀圖。

15. 多元線性回歸

(1) 用途

?多元線性回歸模型(multivariable linear regression model ),因變量Y(計(jì)量資料)往往受到多個(gè)變量X的影響,多元線性回歸模型用于計(jì)算各個(gè)自變量對因變量的影響程度,可以認(rèn)為是對多維空間中的點(diǎn)做線性擬合。

(2) 示例

(3) 結(jié)果分析

?直接通過返回結(jié)果中各變量的P值與0.05比較,來判定對應(yīng)的解釋變量的顯著性,P0.05則認(rèn)為自變量具有統(tǒng)計(jì)學(xué)意義,從上例中可以看到收入INCOME最有顯著性。

16. 邏輯回歸

(1) 用途

?當(dāng)因變量Y為2分類變量(或多分類變量時(shí))可以用相應(yīng)的logistic回歸分析各個(gè)自變量對因變量的影響程度。

(2) 示例

(3) 結(jié)果分析

?直接通過返回結(jié)果中各變量的P值與0.05比較,來判定對應(yīng)的解釋變量的顯著性,P0.05則認(rèn)為自變量具有統(tǒng)計(jì)學(xué)意義。

python編程統(tǒng)計(jì)列表中各數(shù)據(jù)的方差和標(biāo)準(zhǔn)差請編寫主函數(shù)和計(jì)算方差的函數(shù)var。(不能引用庫里)

def fangcha(): a=float(raw_input("請輸入a:")) b=float(raw_input("請輸入b:")) c=float(raw_input("請輸入C:")) d=(a+b+c)/3.0 e=((a-d)**2+(b-d)**2+(c-d)**2)/3.0 print "平均數(shù)是:%f方差是:%f" %(d,e) fangcha() Python2.7可用

均值方差規(guī)范化和極差規(guī)范化有什么區(qū)別python

極差是指一組數(shù)據(jù)內(nèi)的最大值和最小值之間的差異。

平均差是說明集中趨勢的,標(biāo)準(zhǔn)差是說明一組數(shù)據(jù)的離中趨勢的。

一組數(shù)據(jù)中各數(shù)據(jù)與平均數(shù)的差的平方和的平均數(shù)叫做這組數(shù)據(jù)的方差;

極差越大,平均差的代表性越小,反之亦然;標(biāo)準(zhǔn)差越大,平均差的代表性越小,反之亦然。

方差的算術(shù)平方根=標(biāo)準(zhǔn)差

為什么極差用python跑不出結(jié)果

python作為數(shù)據(jù)分析的利器,求極差、平均數(shù)、中位數(shù)、眾數(shù)與方差是很常用的,然而,在python進(jìn)行統(tǒng)計(jì)往往要使用外部的python庫numpy,這個(gè)庫不難裝,然而,如果單純只是求極差、平均數(shù)、中位數(shù)、眾數(shù)與方差,還是自己寫比較好,因?yàn)椋o一個(gè).py程序別人的機(jī)器,別人的機(jī)器上沒有python庫numpy,又要?jiǎng)e人折騰一番,這很不好。不過看情況咯,如果你要處理上億級(jí)的數(shù)據(jù),還是配置一下外部的python庫numpy吧。

先給大家回歸一下極差、平均數(shù)、中位數(shù)、眾數(shù)與方差是什么鬼:

1、極差:最大值與最小值之差。它是標(biāo)志值變動(dòng)的最大范圍。英文:range

公式:R=Xmax-Xmin(其中,Xmax為最大值,Xmin為最小值)

2、平均數(shù):一組數(shù)據(jù)中所有數(shù)據(jù)之和再除以數(shù)據(jù)的個(gè)數(shù)。反映數(shù)據(jù)集中趨勢的一項(xiàng)指標(biāo)。英文:average

公式:

3、中位數(shù):對于有限的數(shù)集,可以通過把所有觀察值高低排序后找出正中間的一個(gè)作為中位數(shù)。如果觀察值有偶數(shù)個(gè),通常取最中間的兩個(gè)數(shù)值的平均數(shù)作為中位數(shù)。英文:median

公式:從小到大排序?yàn)??則N為奇數(shù)時(shí),N為偶數(shù)時(shí),?

4、眾數(shù):眾數(shù)是樣本觀測值在頻數(shù)分布表中頻數(shù)最多的那一組的組中值,主要應(yīng)用于大面積普查研究之中。英文:mode

例如:1,2,3,3,4的眾數(shù)是3。

但是,如果有兩個(gè)或兩個(gè)以上個(gè)數(shù)出現(xiàn)次數(shù)都是最多的,那么這幾個(gè)數(shù)都是這組數(shù)據(jù)的眾數(shù)。

例如:1,2,2,3,3,4的眾數(shù)是2和3。

還有,如果所有數(shù)據(jù)出現(xiàn)的次數(shù)都一樣,那么這組數(shù)據(jù)沒有眾數(shù)。

例如:1,2,3,4,5沒有眾數(shù)。

5、方差:方差是實(shí)際值與期望值之差平方的平均值,方差是在概率論和統(tǒng)計(jì)方差衡量隨機(jī)變量或一組數(shù)據(jù)是離散程度的度量。英文:variance

公式:或者(就是在《概率論與數(shù)理統(tǒng)計(jì)》中那條,方差就是平方的期望-期望的平方)

因此,根據(jù)上述的理論,得到如下的代碼:

[python]?view plain?copy

#-*-coding:utf-8-*-

import?time;

import?random;

class?Math:

#求極差

@staticmethod

def?range(l):

return?max(l)-min(l);

#求平均數(shù)

@staticmethod

def?avg(l):

return?float(sum(l))/len(l);

#求中位數(shù)

@staticmethod

def?median(l):

l=sorted(l);#先排序

if?len(l)%2==1:

return?l[len(l)/2];

else:

return?(l[len(l)/2-1]+l[len(l)/2])/2.0;

#求眾數(shù)

@staticmethod

def?mode(l):

#統(tǒng)計(jì)list中各個(gè)數(shù)值出現(xiàn)的次數(shù)

count_dict={};

for?i?in?l:

if?count_dict.has_key(i):

count_dict[i]+=1;

else:

count_dict[i]=1;

#求出現(xiàn)次數(shù)的最大值

max_appear=0

for?v?in?count_dict.values():

if?vmax_appear:

max_appear=v;

if?max_appear==1:

return;

mode_list=[];

for?k,v?in?count_dict.items():

if?v==max_appear:

mode_list.append(k);

return?mode_list;

#求方差

@staticmethod

def?variance(l):#平方的期望-期望的平方

s1=0;

s2=0;

for?i?in?l:

s1+=i**2;

s2+=i;

return?float(s1)/len(l)-(float(s2)/len(l))**2;

#求方差2

@staticmethod

def?variance2(l):#平方-期望的平方的期望

ex=float(sum(l))/len(l);

s=0;

for?i?in?l:

s+=(i-ex)**2;

return?float(s)/len(l);

#主函數(shù),測試

arr=[1,2,3,2,3,1,4];

print?"極差為:{0}".format(Math.range(arr));

print?"平均數(shù)為:{0:.2f}".format(Math.avg(arr));

print?"中位數(shù)為:{0}".format(Math.median(arr));

print?"眾數(shù)為:{0}".format(Math.mode(arr));

print?"方差為:{0:.2f}".format(Math.variance(arr));

print?"方差為:{0:.2f}".format(Math.variance2(arr));

print;

#性能測試

arraylist=[];

for?i?in?range(1,1000000):

arraylist.append(i);

random.shuffle(arraylist);

time_start=time.time();

print?"方差為:{0:.2f}".format(Math.variance(arraylist));

time_end=time.time();

print?"{0}s".format(time_end-time_start);

time_start=time.time();

print?"方差為:{0:.2f}".format(Math.variance2(arraylist));

time_end=time.time();

print?"{0}s".format(time_end-time_start);

運(yùn)行結(jié)果如下:

關(guān)于這個(gè)程序有幾點(diǎn)說明的:

(1)開頭引入time與random主要是為了最后部分測試兩種求方差的方式那種性能較優(yōu)使用,一般情況下使用上述我自定義的Math類,無須引入任何python包。

(2)求任何一個(gè)統(tǒng)計(jì)量,用到除法,注意先將int先轉(zhuǎn)float,否則精度損失嚴(yán)重,你是得到不到最后的正確答案的。

(3)python中自帶有求list所有元素之和的sum,求list中的最值max,min,對list中的元素進(jìn)行從小到大的排序sort()都用了,其余只能讓我們自己現(xiàn)實(shí)了。

(4)這里無須考慮如果形式參數(shù)被傳入一個(gè)字符串?dāng)?shù)組怎么辦,因?yàn)檫@些工具類都是我們自己使用了,自己控制好要傳遞的數(shù)值,無須考慮這么多。

(5)求眾數(shù)最艱難,因?yàn)橛貌坏饺魏蝡ython自帶的方法,還要返回一個(gè)list,因?yàn)楸姅?shù)的個(gè)數(shù)不定,統(tǒng)計(jì)數(shù)組中出現(xiàn)次數(shù)最多的數(shù)的時(shí)候,用到了python中的字典dict,《【Python】容器類》(點(diǎn)擊打開鏈接),這個(gè)字典中,key是list中的數(shù)字,values是該數(shù)字出現(xiàn)的次數(shù)。然后要求出現(xiàn)次數(shù)的最大值,最后再求出改最大值對應(yīng)的key。其中用count_dict.items()返回字典中的key-value對的數(shù)組集,count_dict.values()返回字典中的value集,當(dāng)然同時(shí)也有count_dict.keys()返回key集。

(6)由于求方差的方法有兩種,此程序在最后部分生成了一個(gè)百萬級(jí)、打亂順序的list,對兩種求方差的方法進(jìn)行測試,令人吃驚的是,萬萬沒想到是我們愚蠢的人類最不愛用,也最難用的,最不好用的平方-期望的平方的期望,優(yōu)于更好記憶的、更常用的平方的期望-期望的平方:。。從上述的運(yùn)行結(jié)果可以看出這種求方差的方法速度是的一倍!這就是聰明的計(jì)算機(jī)與愚蠢的人類的區(qū)別吧~

(7)最后,python的打印到控制臺(tái),其實(shí)你完全可以print得更好的,你不換行還要在print后面補(bǔ)逗號(hào)嗎,再print一個(gè)什么東東,或者將數(shù)值用str先轉(zhuǎn)字符串才能與純正的字符串連接起來,而字符串的format方法,配合print相當(dāng)于C語言的printf,同時(shí)python的format用{0},{1}...代表后面的第0、1……參數(shù)。{0:.2f}代表這個(gè)參數(shù)以保留2位小數(shù)的方式輸出。

閱讀全文

版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)

分享標(biāo)題:python數(shù)據(jù)極差函數(shù),用python曲線函數(shù)的極值
網(wǎng)址分享:http://chinadenli.net/article24/heojce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)靜態(tài)網(wǎng)站網(wǎng)站設(shè)計(jì)公司全網(wǎng)營銷推廣營銷型網(wǎng)站建設(shè)網(wǎng)站收錄

廣告

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

小程序開發(fā)