pandas中std和numpy的np.std區(qū)別及說明
pandas中std和numpy的std區(qū)別
原理
計(jì)算標(biāo)準(zhǔn)差時,需要注意numpy中的std和pandas的std在計(jì)算標(biāo)準(zhǔn)差時,默認(rèn)的計(jì)算結(jié)果會存在不一致的問題。
原因在于默認(rèn)情況下,
numpy
計(jì)算的為總體標(biāo)準(zhǔn)偏差,ddof=0;一般在擁有所有數(shù)據(jù)的情況下,計(jì)算所有數(shù)據(jù)的標(biāo)準(zhǔn)差時使用,即最終除以n,而非n-1;pandas
計(jì)算的為樣本標(biāo)準(zhǔn)偏差,ddof=1;一般在只有部分?jǐn)?shù)據(jù),但需要求得總體的標(biāo)準(zhǔn)差時使用,當(dāng)只有部分?jǐn)?shù)據(jù)時,根據(jù)統(tǒng)計(jì)規(guī)律,除以n時計(jì)算的標(biāo)準(zhǔn)差往往偏小,因此需要除以n-1,即n-ddof;
實(shí)際使用時需要注意,并且根據(jù)數(shù)據(jù)情況選擇合適的函數(shù),在數(shù)據(jù)量較大時,推薦使用numpy進(jìn)行計(jì)算。
速度區(qū)別
速度由快到慢依次:
s1 = pd.Series([1,2,3,4,5]) #速度由快至慢 np.std(s1.values) > s1.std(ddof=0) > np.std(s1)
使用numpy和pandas計(jì)算平均值、方差、標(biāo)準(zhǔn)差
numpy和pandas都可以實(shí)現(xiàn)計(jì)算平均值、方差、標(biāo)準(zhǔn)差。
但numpy默認(rèn)的是總體方差,pandas默認(rèn)的樣本方差,即分母是n-1,是總體的無偏估計(jì)。
numpy的語法
# numpy計(jì)算方法 import numpy as np x = [1,2,3,4,5] # mean mean = np.mean(x) # variation var = np.var(x) # stander var std = np.std(x,ddof=1) #ddof=1 表示樣本方差分母是n-1,無偏估計(jì) doof=0 表示總體標(biāo)準(zhǔn)差
pandas的語法
#pandas計(jì)算方法 #axis = 0表示跨行,axis=1表示跨列 import pandas as pd data_dic = {'c1' : [1,2,3], 'c2': [1,3,5]} df = pd.DataFrame(data_dic) #c1列的meam mean = df['c1'].mean() #or mean = df.iloc[:,0].mean() #c1列的var var = df['c1'].var() #計(jì)算的無偏樣本方差 var = df['c1'].values.var() #計(jì)算的是有偏的總體方差 #c1列的std std = df['c1'].std() std = df['c1'].values.std()
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
django之導(dǎo)入并執(zhí)行自定義的函數(shù)模塊圖解
這篇文章主要介紹了django之導(dǎo)入并執(zhí)行自定義的函數(shù)模塊圖解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Django后臺管理系統(tǒng)的圖文使用教學(xué)
在本篇文章里小編給大家整理的是一篇關(guān)于Django后臺管理系統(tǒng)的圖文使用教學(xué)內(nèi)容,需要的朋友們參考下。2020-01-01Python入門學(xué)習(xí)之字符串與比較運(yùn)算符
這篇文章主要介紹了Python入門學(xué)習(xí)之字符串與比較運(yùn)算符,是Python語法中的基礎(chǔ)知識,需要的朋友可以參考下2015-10-10Python中集合類型(set)學(xué)習(xí)小結(jié)
這篇文章主要介紹了Python中集合類型(set)學(xué)習(xí)小結(jié),本文講解了set的初始化、運(yùn)算操作、基本方法等內(nèi)容,需要的朋友可以參考下2015-01-01