•本文字數:約1300字•閱讀時長:約5分鐘•難度:2顆星
集中趨勢:平均數(算數平均數、幾何平均數、調和平均數)、眾數、中位數等。
平均值: 指在一組數據中所有數據之和再除以數據的個數。
中位數:按順序排列的一組數據中居於中間位置的數,即在這組數據中,有一半的數據比他大,有一半的數據比他小。
眾數:在一組數據中,出現次數最多的數據;是樣本觀測值在頻數表中頻數最多的那一組的組中值。
四分位數:是指根據中位數分為2個部分後,再取每個部分的中位數。
模塊導入
import numpy as npimport pandas as pdimport matplotlib.pyplot as plt%matplotlib inlineimport seaborn as snssns.set_style("darkgrid")plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False sns.set(font='SimHei',font_scale=1.5)算數平均數
data = pd.DataFrame({'value':np.random.randint(100,120,100), 'f':np.random.rand(100)})data['f'] = data['f'] / data['f'].sum() print(data.head())print('-')
mean = data['value'].mean()print('簡單算數平均值為:%.2f' % mean)
mean_w = (data['value'] * data['f']).sum() / data['f'].sum()print('加權算數平均值為:%.2f' % mean_w)value f
0 105 0.013713
1 102 0.014311
2 107 0.005183
3 100 0.017619
4 116 0.019326
-
簡單算數平均值為:108.82
加權算數平均值為:109.11位置平均數
m = data['value'].mode()print('眾數為',m.tolist())
med = data['value'].median()print('中位數為%i' % med)
data['value'].plot(kind = 'kde',style = '--k',grid = True)
plt.axvline(mean,color='r',linestyle="--",alpha=0.8) plt.text(mean + 5,0.005,'簡單算數平均值為:%.2f' % mean, color = 'r')
plt.axvline(mean_w,color='b',linestyle="--",alpha=0.8) plt.text(mean + 5,0.01,'加權算數平均值:%.2f' % mean_w, color = 'b')
plt.axvline(med,color='g',linestyle="--",alpha=0.8) plt.text(mean + 5,0.015,'中位數:%i' % med, color = 'g')眾數為 [100, 108]
中位數為108百分位數
q1=np.percentile(data['value'],25) q2=np.percentile(data['value'],95) print('上四分位數:%s'%q1)print('95分位數:%s'%q2)df=pd.Series(data['value'])print('下四分位數:%s'%(df.quantile(.75)))
data['value'].plot.box(grid = True,color = color,figsize = (10,3))上四分位數:104.0
95分位數:118.0
下四分位數:113.25今天就先到這啦,早點休息哦~
加油,堅持就是勝利,學完你就是個寶藏女(男)孩啦~
一起學習的小夥伴如果有什麼想法或者意見,歡迎溝通~
投稿|溝通郵箱:yzhmry1314@163.com