10?個(gè)Python統(tǒng)計(jì)分析常用的經(jīng)典腳本分享
在數(shù)據(jù)科學(xué)和統(tǒng)計(jì)分析中,Python 是一門(mén)非常流行的語(yǔ)言。它憑借其豐富的庫(kù)和簡(jiǎn)潔的語(yǔ)法,使得數(shù)據(jù)處理和分析變得相對(duì)容易。在這篇文章中,我們將介紹 10 個(gè)經(jīng)典的 Python 腳本,用于執(zhí)行日常的統(tǒng)計(jì)分析任務(wù)。這些示例不僅適合新手學(xué)習(xí),還結(jié)合了生活中的實(shí)際例子,以便更容易理解。
1. 計(jì)算平均值
平均值是衡量一組數(shù)值中心趨勢(shì)的重要指標(biāo),通常通過(guò)將所有數(shù)值相加后除以數(shù)量得到。
假設(shè)你剛剛參加了一場(chǎng)考試,分?jǐn)?shù)分別為 85、90、78、92 和 88,想知道你的平均分?jǐn)?shù)。
# 定義一個(gè)列表存儲(chǔ)分?jǐn)?shù)
scores = [85, 90, 78, 92, 88]
# 計(jì)算平均值
average_score = sum(scores) / len(scores)
# 打印結(jié)果
print("你的平均分?jǐn)?shù)是:", average_score)
2. 計(jì)算中位數(shù)
中位數(shù)是將一組數(shù)值按大小排列后,位于中間位置的數(shù)值。當(dāng)數(shù)據(jù)量為偶數(shù)時(shí),中位數(shù)是中間兩個(gè)數(shù)的平均值。
如果你想了解你和朋友們(分?jǐn)?shù)為 70、80、90、85、95)的成績(jī)中間的表現(xiàn),你可以計(jì)算中位數(shù)。
# 導(dǎo)入 statistics 模塊
import statistics
# 定義一個(gè)列表存儲(chǔ)分?jǐn)?shù)
scores = [70, 80, 90, 85, 95]
# 計(jì)算中位數(shù)
median_score = statistics.median(scores)
# 打印結(jié)果
print("你的中位數(shù)分?jǐn)?shù)是:", median_score)
3. 計(jì)算眾數(shù)
眾數(shù)是數(shù)據(jù)集中出現(xiàn)頻率最高的數(shù)值。在某些情況下,可能會(huì)有多個(gè)眾數(shù)。
考慮你調(diào)查了同學(xué)最喜歡的水果,調(diào)查結(jié)果為 ["蘋(píng)果", "香蕉", "蘋(píng)果", "橙子", "香蕉"],你想知道哪個(gè)水果最受歡迎。
# 導(dǎo)入 statistics 模塊
import statistics
# 定義一個(gè)列表存儲(chǔ)水果偏好
fruits = ["蘋(píng)果", "香蕉", "蘋(píng)果", "橙子", "香蕉"]
# 計(jì)算眾數(shù)
mode_fruit = statistics.mode(fruits)
# 打印結(jié)果
print("最受歡迎的水果是:", mode_fruit)
4. 計(jì)算標(biāo)準(zhǔn)差
標(biāo)準(zhǔn)差是衡量一組數(shù)值離散程度的指標(biāo),反映數(shù)據(jù)的分散程度,值越小表示數(shù)據(jù)越集中。
你想知道你的考試成績(jī)(如 75、80、85、90、100)的穩(wěn)定性,可以通過(guò)標(biāo)準(zhǔn)差來(lái)衡量。
# 導(dǎo)入 statistics 模塊
import statistics
# 定義一個(gè)列表存儲(chǔ)分?jǐn)?shù)
scores = [75, 80, 85, 90, 100]
# 計(jì)算標(biāo)準(zhǔn)差
std_deviation = statistics.stdev(scores)
# 打印結(jié)果
print("你的考試成績(jī)的標(biāo)準(zhǔn)差是:", std_deviation)
5. 頻率分布表
頻率分布表用于顯示各個(gè)數(shù)值或類(lèi)別出現(xiàn)的次數(shù),以便直觀了解數(shù)據(jù)分布情況。
你收集了班級(jí)同學(xué)的考試分?jǐn)?shù),想要查看每個(gè)分?jǐn)?shù)區(qū)間內(nèi)有多少人。
# 導(dǎo)入 pandas 庫(kù)
import pandas as pd
# 定義一個(gè)列表存儲(chǔ)分?jǐn)?shù)
scores = [70, 75, 80, 85, 90, 75, 95, 85, 80, 70]
# 創(chuàng)建 DataFrame
df = pd.DataFrame(scores, columns=['Score'])
# 生成頻率分布表
frequency_table = df.value_counts(bins=5) # 將分?jǐn)?shù)分為 5 個(gè)區(qū)間
# 打印結(jié)果
print("頻率分布表:\n", frequency_table)
6. 畫(huà)出直方圖
直方圖是一種可視化工具,用于展示數(shù)值型數(shù)據(jù)的分布情況,通過(guò)將數(shù)據(jù)分為若干區(qū)間并計(jì)數(shù)每個(gè)區(qū)間內(nèi)的數(shù)據(jù)點(diǎn)。
假設(shè)你記錄了一周內(nèi)每天的步數(shù),想繪制直方圖以觀察步數(shù)的分布情況。
# 導(dǎo)入 matplotlib 庫(kù)
import matplotlib.pyplot as plt
# 定義一個(gè)列表存儲(chǔ)步數(shù)
steps = [3000, 5000, 7000, 8000, 12000, 4000, 6000]
# 繪制直方圖
plt.hist(steps, bins=5, color='skyblue', edgecolor='black')
plt.title('每日步數(shù)分布')
plt.xlabel('步數(shù)')
plt.ylabel('天數(shù)')
plt.show()
7. 相關(guān)性分析
相關(guān)性分析用于確定兩個(gè)變量之間的關(guān)系強(qiáng)度和方向,常用的方法是皮爾遜相關(guān)系數(shù)。
如果你想分析學(xué)習(xí)時(shí)間與考試成績(jī)之間的關(guān)系,相關(guān)性分析可以幫助你找到答案。
# 導(dǎo)入 numpy 和 scipy.stats 庫(kù)
import numpy as np
from scipy import stats
# 定義學(xué)習(xí)時(shí)間和成績(jī)
study_time = [1, 2, 3, 4, 5] # 學(xué)習(xí)小時(shí)數(shù)
scores = [50, 60, 65, 80, 90] # 對(duì)應(yīng)的分?jǐn)?shù)
# 計(jì)算相關(guān)系數(shù)
correlation_coefficient, p_value = stats.pearsonr(study_time, scores)
# 打印結(jié)果
print("學(xué)習(xí)時(shí)間與成績(jī)之間的相關(guān)系數(shù)是:", correlation_coefficient)
8. 小組比較:t 檢驗(yàn)
t 檢驗(yàn)用于比較兩組樣本均值是否有顯著差異,常用于實(shí)驗(yàn)研究。
假設(shè)你想比較兩種教學(xué)方法對(duì)學(xué)生成績(jī)的影響,可使用 t 檢驗(yàn)。
# 導(dǎo)入 scipy.stats 庫(kù)
from scipy import stats
# 定義兩組分?jǐn)?shù)
method_a_scores = [80, 85, 90, 95, 100]
method_b_scores = [75, 80, 85, 90, 95]
# 進(jìn)行 t 檢驗(yàn)
t_statistic, p_value = stats.ttest_ind(method_a_scores, method_b_scores)
# 打印結(jié)果
print("t 檢驗(yàn)結(jié)果: t 統(tǒng)計(jì)量 =", t_statistic, ", p 值 =", p_value)
9. 線性回歸分析
線性回歸是一種用于預(yù)測(cè)和建模的方法,通過(guò)擬合一條最佳擬合線來(lái)描述兩個(gè)變量之間的關(guān)系。
如果你想根據(jù)廣告支出預(yù)測(cè)銷(xiāo)售額,可以使用線性回歸分析。
# 導(dǎo)入 sklearn 庫(kù)
from sklearn.linear_model import LinearRegression
import numpy as np
# 定義廣告支出和銷(xiāo)售額
advertising_spent = np.array([1000, 2000, 3000, 4000, 5000]).reshape(-1, 1)
sales = np.array([15000, 25000, 35000, 45000, 55000])
# 創(chuàng)建線性回歸模型并訓(xùn)練
model = LinearRegression()
model.fit(advertising_spent, sales)
# 打印回歸系數(shù)
print("線性回歸系數(shù) (廣告支出與銷(xiāo)售額):", model.coef_[0])
10. 使用 Pandas 進(jìn)行數(shù)據(jù)清洗
數(shù)據(jù)清洗是數(shù)據(jù)分析中非常重要的一步,通過(guò)處理缺失值、重復(fù)數(shù)據(jù)等,提高數(shù)據(jù)質(zhì)量。
假設(shè)你從網(wǎng)上下載了一份包含用戶信息的文件,其中一些行缺失了年齡信息。
# 導(dǎo)入 pandas 庫(kù)
import pandas as pd
# 創(chuàng)建 DataFrame 包含用戶信息
data = {
'姓名': ['Alice', 'Bob', 'Charlie', 'David'],
'年齡': [25, None, 30, 35],
'城市': ['北京', '上海', '廣州', '深圳']
}
df = pd.DataFrame(data)
# 去除缺失年齡的行
cleaned_df = df.dropna(subset=['年齡'])
# 打印清洗后的數(shù)據(jù)
print("清洗后的用戶信息:\n", cleaned_df)
總結(jié)
本文介紹了十個(gè)常用的 Python 統(tǒng)計(jì)分析腳本,從基本的統(tǒng)計(jì)測(cè)量到數(shù)據(jù)可視化和處理。通過(guò)這些簡(jiǎn)單的代碼示例,新手小白可以快速上手并應(yīng)用于實(shí)際問(wèn)題中。希望這些知識(shí)能夠幫助你在數(shù)據(jù)分析的旅程中更進(jìn)一步!
到此這篇關(guān)于10 個(gè)Python統(tǒng)計(jì)分析常用的經(jīng)典腳本分享的文章就介紹到這了,更多相關(guān)Python統(tǒng)計(jì)分析腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python統(tǒng)計(jì)節(jié)假日剩余天數(shù)的腳本
- 編寫(xiě)Python小程序來(lái)統(tǒng)計(jì)測(cè)試腳本的關(guān)鍵字
- 用于統(tǒng)計(jì)項(xiàng)目中代碼總行數(shù)的Python腳本分享
- Python腳本實(shí)現(xiàn)代碼行數(shù)統(tǒng)計(jì)代碼分享
- 一文分享4個(gè)Python實(shí)用腳本讓你效率爆表
- Python自動(dòng)化讀取txt文件數(shù)據(jù)的8個(gè)實(shí)用腳本
- 分享20個(gè)實(shí)用的Python?Excel自動(dòng)化腳本
相關(guān)文章
一文教你徹底掌握Python數(shù)據(jù)類(lèi)型轉(zhuǎn)換
Python的核心數(shù)據(jù)類(lèi)型包括:int(整數(shù)),float(浮點(diǎn)數(shù)),str(字符串),bool(布爾值),本文整理了他們之前相互轉(zhuǎn)換的方法,需要的可以了解下2025-05-05
如何解決vscode下powershell終端進(jìn)入python虛擬環(huán)境venv問(wèn)題
這篇文章主要介紹了如何解決vscode下powershell終端進(jìn)入python虛擬環(huán)境venv問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
手把手教你部署AI小說(shuō)生成器(Python環(huán)境搭建)
本文詳細(xì)介紹了如何使用Python+AI從零開(kāi)始搭建屬于自己的AI小說(shuō)生成器,文章分為環(huán)境準(zhǔn)備、第一次安裝、關(guān)機(jī)重啟、配置大腦等步驟進(jìn)行講解,幫助用戶輕松實(shí)現(xiàn)AI輔助創(chuàng)作2026-04-04
最新版 Windows10上安裝Python 3.8.5的步驟詳解
這篇文章主要介紹了最新版 Windows10上安裝Python 3.8.5的步驟詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Python實(shí)現(xiàn)的圓形繪制(畫(huà)圓)示例
這篇文章主要介紹了Python實(shí)現(xiàn)的圓形繪制(畫(huà)圓),結(jié)合實(shí)例形式分析了Python基于numpy與matplotlib模塊的數(shù)學(xué)運(yùn)算及圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
Python結(jié)合DeepSeek實(shí)現(xiàn)自動(dòng)生成測(cè)試用例的示例代碼
在當(dāng)今快節(jié)奏的軟件開(kāi)發(fā)領(lǐng)域,自動(dòng)化測(cè)試已然成為保障軟件質(zhì)量的中流砥柱,下面我們就來(lái)看看如何借助?DeepSeek?與?Python?的?pytest?框架實(shí)現(xiàn)測(cè)試用例的智能生成吧2025-05-05
Python三百行代碼實(shí)現(xiàn)飛機(jī)大戰(zhàn)
飛機(jī)大戰(zhàn)想必大家可能玩過(guò)微信的這款小游戲,給我的感覺(jué)是這款游戲怎么可以做得這么好呢,操作簡(jiǎn)單,容易上手,簡(jiǎn)直是“老少皆宜”啊,既然這款游戲這么棒,能否自己動(dòng)手用 Python 來(lái)實(shí)現(xiàn)呢?事實(shí)證明是可以的2022-09-09
Python動(dòng)態(tài)屬性與反射機(jī)制方式
深入探索Python中的反射機(jī)制和動(dòng)態(tài)屬性的細(xì)節(jié),對(duì)我們來(lái)說(shuō)是編寫(xiě)具有適應(yīng)性和高可擴(kuò)展性程序的關(guān)鍵,本篇文章旨在通過(guò)詳盡的概念介紹和精心設(shè)計(jì)的代碼示例,加強(qiáng)您對(duì)這些核心概念的把握,并助您在實(shí)踐中運(yùn)用自如2024-06-06

