it编程 > 前端脚本 > Python

10 个Python统计分析常用的经典脚本分享

10人参与 2026-01-31 Python

在数据科学和统计分析中,python 是一门非常流行的语言。它凭借其丰富的库和简洁的语法,使得数据处理和分析变得相对容易。在这篇文章中,我们将介绍 10 个经典的 python 脚本,用于执行日常的统计分析任务。这些示例不仅适合新手学习,还结合了生活中的实际例子,以便更容易理解。

1. 计算平均值

平均值是衡量一组数值中心趋势的重要指标,通常通过将所有数值相加后除以数量得到。

假设你刚刚参加了一场考试,分数分别为 85、90、78、92 和 88,想知道你的平均分数。

# 定义一个列表存储分数
scores = [85, 90, 78, 92, 88]

# 计算平均值
average_score = sum(scores) / len(scores)

# 打印结果
print("你的平均分数是:", average_score)

2. 计算中位数

中位数是将一组数值按大小排列后,位于中间位置的数值。当数据量为偶数时,中位数是中间两个数的平均值。

如果你想了解你和朋友们(分数为 70、80、90、85、95)的成绩中间的表现,你可以计算中位数。

# 导入 statistics 模块
import statistics

# 定义一个列表存储分数
scores = [70, 80, 90, 85, 95]

# 计算中位数
median_score = statistics.median(scores)

# 打印结果
print("你的中位数分数是:", median_score)

3. 计算众数

众数是数据集中出现频率最高的数值。在某些情况下,可能会有多个众数。

考虑你调查了同学最喜欢的水果,调查结果为 ["苹果", "香蕉", "苹果", "橙子", "香蕉"],你想知道哪个水果最受欢迎。

# 导入 statistics 模块
import statistics

# 定义一个列表存储水果偏好
fruits = ["苹果", "香蕉", "苹果", "橙子", "香蕉"]

# 计算众数
mode_fruit = statistics.mode(fruits)

# 打印结果
print("最受欢迎的水果是:", mode_fruit)

4. 计算标准差

标准差是衡量一组数值离散程度的指标,反映数据的分散程度,值越小表示数据越集中。

你想知道你的考试成绩(如 75、80、85、90、100)的稳定性,可以通过标准差来衡量。

# 导入 statistics 模块
import statistics

# 定义一个列表存储分数
scores = [75, 80, 85, 90, 100]

# 计算标准差
std_deviation = statistics.stdev(scores)

# 打印结果
print("你的考试成绩的标准差是:", std_deviation)

5. 频率分布表

频率分布表用于显示各个数值或类别出现的次数,以便直观了解数据分布情况。

你收集了班级同学的考试分数,想要查看每个分数区间内有多少人。

# 导入 pandas 库
import pandas as pd

# 定义一个列表存储分数
scores = [70, 75, 80, 85, 90, 75, 95, 85, 80, 70]

# 创建 dataframe
df = pd.dataframe(scores, columns=['score'])

# 生成频率分布表
frequency_table = df.value_counts(bins=5)  # 将分数分为 5 个区间

# 打印结果
print("频率分布表:\n", frequency_table)

6. 画出直方图

直方图是一种可视化工具,用于展示数值型数据的分布情况,通过将数据分为若干区间并计数每个区间内的数据点。

假设你记录了一周内每天的步数,想绘制直方图以观察步数的分布情况。

# 导入 matplotlib 库
import matplotlib.pyplot as plt

# 定义一个列表存储步数
steps = [3000, 5000, 7000, 8000, 12000, 4000, 6000]

# 绘制直方图
plt.hist(steps, bins=5, color='skyblue', edgecolor='black')
plt.title('每日步数分布')
plt.xlabel('步数')
plt.ylabel('天数')
plt.show()

7. 相关性分析

相关性分析用于确定两个变量之间的关系强度和方向,常用的方法是皮尔逊相关系数。

如果你想分析学习时间与考试成绩之间的关系,相关性分析可以帮助你找到答案。

# 导入 numpy 和 scipy.stats 库
import numpy as np
from scipy import stats

# 定义学习时间和成绩
study_time = [1, 2, 3, 4, 5]  # 学习小时数
scores = [50, 60, 65, 80, 90]  # 对应的分数

# 计算相关系数
correlation_coefficient, p_value = stats.pearsonr(study_time, scores)

# 打印结果
print("学习时间与成绩之间的相关系数是:", correlation_coefficient)

8. 小组比较:t 检验

t 检验用于比较两组样本均值是否有显著差异,常用于实验研究。

假设你想比较两种教学方法对学生成绩的影响,可使用 t 检验。

# 导入 scipy.stats 库
from scipy import stats

# 定义两组分数
method_a_scores = [80, 85, 90, 95, 100]
method_b_scores = [75, 80, 85, 90, 95]

# 进行 t 检验
t_statistic, p_value = stats.ttest_ind(method_a_scores, method_b_scores)

# 打印结果
print("t 检验结果: t 统计量 =", t_statistic, ", p 值 =", p_value)

9. 线性回归分析

线性回归是一种用于预测和建模的方法,通过拟合一条最佳拟合线来描述两个变量之间的关系。

如果你想根据广告支出预测销售额,可以使用线性回归分析。

# 导入 sklearn 库
from sklearn.linear_model import linearregression
import numpy as np

# 定义广告支出和销售额
advertising_spent = np.array([1000, 2000, 3000, 4000, 5000]).reshape(-1, 1)
sales = np.array([15000, 25000, 35000, 45000, 55000])

# 创建线性回归模型并训练
model = linearregression()
model.fit(advertising_spent, sales)

# 打印回归系数
print("线性回归系数 (广告支出与销售额):", model.coef_[0])

10. 使用 pandas 进行数据清洗

数据清洗是数据分析中非常重要的一步,通过处理缺失值、重复数据等,提高数据质量。

假设你从网上下载了一份包含用户信息的文件,其中一些行缺失了年龄信息。

# 导入 pandas 库
import pandas as pd

# 创建 dataframe 包含用户信息
data = {
    '姓名': ['alice', 'bob', 'charlie', 'david'],
    '年龄': [25, none, 30, 35],
    '城市': ['北京', '上海', '广州', '深圳']
}
df = pd.dataframe(data)

# 去除缺失年龄的行
cleaned_df = df.dropna(subset=['年龄'])

# 打印清洗后的数据
print("清洗后的用户信息:\n", cleaned_df)

总结

本文介绍了十个常用的 python 统计分析脚本,从基本的统计测量到数据可视化和处理。通过这些简单的代码示例,新手小白可以快速上手并应用于实际问题中。希望这些知识能够帮助你在数据分析的旅程中更进一步!

到此这篇关于10 个python统计分析常用的经典脚本分享的文章就介绍到这了,更多相关python统计分析脚本内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

Python Flask实现多文件项目打包部署(Linux+Docker+Windows全环境)指南

01-31

Python使用PyQt5打造桌面应用的入门指南

01-31

用OpenCV和Python进行人脸识别实战

01-31

一文分享4个Python实用脚本让你效率爆表

01-31

8个Python中批量处理数据的核心库使用指南

01-31

从原理到实战详解Python中文件并发读写的避坑指南

01-31

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论