《Python專案——描述性統計分析》
一,簡介
描述性統計分析,是統計學當中的一種分析方法,它是對原始資料進行概括和觀察後的一種描述,一般分為集中趨勢分析和離散程度分析兩種方法。對於集中趨勢分析,我們主要研究的是資料的集中程度,有眾數,中位數,均值這幾個反映指標;而離散程度分析主要度量的是資料的分散程度,有四分位數,標準差這兩個反映指標。值得注意的是,當資料集的集中趨勢較強時,分散程度就越弱,反之亦然。
二,輸入
#獲得原始資料
def getdata():
while True:
data=eval(input('請輸入資料型資料(資料間用\',\'作為分隔符:)'))
for i in data:
judge=type(i)
if judge != int:
print('輸入非資料型資料,請重新輸入')
print('-'*20)
break
else:
return data
三,處理輸出
(一)集中趨勢分析
1.眾數
#對原始資料求眾數
def Mode(data):
'''
data:tuple
'''
count={}
mode_list=[]
for num in data:
if count.get(num,0) == 0:
count[num]=1
else:
count[num]+=1
for key,value in count.items():
if value == max(count.values()):
mode_list.append(key)
for i in range(len(mode_list)):
mode_list[i]=str(mode_list[i])
return ','.join(mode_list)
2.中位數
def Median(data):
data=sorted(data)
if len(data) %2 !=0:
locate=int((len(data)+1)/2)
med=data[locate-1]
else:
locate=(len(data)+1)/2
med=(data[int(locate-0.5-1)]+data[int(locate+0.5-1)])/2
return med
3.均值
def Average(data):
count=len(data)
sum=0
for num in data:
sum+=num
avg=sum/count
return avg
(二)離散程度分析
1.四分位數
def Quartile(data):
data=sorted(data)
Ql=(len(data)+1)*0.25
QU=(3*(len(data)+1))/4
if Ql ==int(Ql):
Ml=data[int(Ql)-1]
else:
Ml=(1-(Ql-int(Ql)))*data[int(Ql-1)]+(Ql-int(Ql))*data[int(Ql)]
if QU ==int(QU):
Mu=data[int(QU)-1]
else:
Mu=(1-(QU-int(QU)))*data[int(QU-1)]+(QU-int(QU))*data[int(QU)]
return Ml,Mu
2.標準差
def Stdev(avg,data):
mils=[]
sum=0
for num in data:
mils.append((num-avg)**2)
for num in mils:
sum+=num
return (sum/len(data))**(1/2)
四,結合輸出
def getdata():
while True:
data=eval(input('請輸入資料型資料(資料間用\',\'作為分隔符):'))
for i in data:
judge=type(i)
if judge != int:
print('輸入非資料型資料,請重新輸入')
print('-'*20)
break
else:
return data
def Mode(data):
count={}
mode_list=[]
for num in data:
if count.get(num,0) == 0:
count[num]=1
else:
count[num]+=1
for key,value in count.items():
if max(count.values())==1:
return None
if value == max(count.values()):
mode_list.append(key)
for i in range(len(mode_list)):
mode_list[i]=str(mode_list[i])
return ','.join(mode_list)
def Median(data):
data=sorted(data)
if len(data) %2 !=0:
locate=int((len(data)+1)/2)
med=data[locate-1]
return med
else:
locate=(len(data)+1)/2
med=(data[int(locate-0.5-1)]+data[int(locate+0.5-1)])/2
return med
def Average(data):
count=len(data)
sum=0
for num in data:
sum+=num
avg=sum/count
return avg
def Quartile(data):
data=sorted(data)
Ql=(len(data)+1)*0.25
QU=(3*(len(data)+1))/4
if Ql ==int(Ql):
Ml=data[int(Ql)-1]
else:
Ml=(1-(Ql-int(Ql)))*data[int(Ql-1)]+(Ql-int(Ql))*data[int(Ql)]
if QU ==int(QU):
Mu=data[int(QU)-1]
else:
Mu=(1-(QU-int(QU)))*data[int(QU-1)]+(QU-int(QU))*data[int(QU)]
return Ml,Mu
def Stdev(avg,data):
mils=[]
sum=0
for num in data:
mils.append((num-avg)**2)
for num in mils:
sum+=num
return (sum/len(data))**(1/2)
data=getdata()
mode=Mode(data)
med=Median(data)
avg=Average(data)
Ml,Mu=Quartile(data)
std=Stdev(avg,data)
print('眾數為{},\n中位數為{},\n上分位數為{},\n下分位數為{},\n均值為{:.2f},\n標準差為{:.2f},\n'.format(mode,med,Ml,Mu,avg,std))
相關文章
- 常用【描述性統計指標】含義(by python)指標Python
- Lesson6——Pandas Pandas描述性統計
- 如何統計專案程式碼?
- 專案分析
- python畢業設計專案原始碼Python原始碼
- 軟體專案管理流程分析與設計專案管理
- Python:對程式做效能分析及計時統計Python
- 多元統計之因子分析模型及Python分析示例模型Python
- python 統計檔案中有多少空行Python
- Kowala專案分析
- 如何建立iOS證書和描述性檔案iOS
- python建立專案Python
- python gui專案PythonGUI
- 入門Python資料分析最好的實戰專案(二)Python
- 入門Python資料分析最好的實戰專案(一)Python
- EECS 183專案分析
- 完整的python專案例項-python完整專案Python
- Docker部署Python專案DockerPython
- python專案開發Python
- VSCode配置python專案VSCodePython
- Nuitka 打包python專案UIPython
- 除錯python專案除錯Python
- python實戰專案Python
- Python資料分析之 pandas彙總和計算描述統計Python
- 課程設計:python_網路爬蟲專案Python爬蟲
- 慢跑者jogger專案開發系統模式分析講解模式
- BTBI-nCov疫情分析BI系統專案詳情
- 多元統計分析01:多元統計分析基礎
- 關於軟體專案開發的分析與設計
- 鏈遊專案系統開發方案設計
- Python文字統計與分析從基礎到進階Python
- Python專案實戰(一)《Python程式設計 從入門到實踐》Python程式設計
- 編寫具有描述性的 RESTful API (四): 通知系統RESTAPI
- 正態分佈的應用——基於描述性統計與分佈的推論
- 【Blazor】1-Blazor專案檔案分析Blazor
- 傳統專案管理VS敏捷專案管理專案管理敏捷
- 快速識別爛專案!試試這款專案程式碼統計IDEA外掛Idea
- PyCharm 建立純Python專案PyCharmPython