Python描述性统计分析:基础概念、应用和实例分析
作为一种高效、可扩展和易于学习的编程语言,Python在文本处理、数据挖掘、机器学习、数据可视化等方面已经得到了广泛应用。在数据分析领域,Python拥有强大的描述性统计分析库,可以对数据的分布、频率、趋势和异常情况进行可视化和分析。
Python描述性统计分析的基础概念
描述性统计分析是一种分析数据分布和趋势的方法,通过计算和可视化数据的均值、方差、中位数、四分位数、极差、标准差等指标,帮助我们更好地理解数据背后的规律和特征。在Python中,我们可以使用多种库来进行描述性统计分析,其中最常用的是NumPy和Pandas。
NumPy是Python中用于科学计算和数值分析的库,它提供了高效的多维数组和矩阵数据结构,可以进行快速的矩阵运算和数值计算。在描述性统计分析中,NumPy的主要作用是计算数据的基本统计指标,如均值、中位数、标准差等等。
Pandas是Python中用于数据处理和分析的库,它提供了DataFrame和Series等数据结构,可以方便地处理结构化的数据。在描述性统计分析中,Pandas的主要作用是对数据进行筛选、分类和汇总,并可视化呈现结果。
Python描述性统计分析的应用
统计量计算
对于给定的数据集,我们通常需要计算一些基本的统计量来描述数据的分布和趋势。通过Python中的库和函数,我们可以快速地计算数据的均值、标准差、中位数、最大值、最小值、四分位数等指标。以计算均值和标准差为例:
import numpy as npdata = np.array([1, 2, 3, 4, 5])
mean = np.mean(data)
std = np.std(data)print("Mean: ", mean)
print("Std: ", std)
输出:
Mean: 3.0
Std: 1.4142135623730951
分布分析
分布分析是描述性统计分析的重要环节之一,它帮助我们理解数据的统计特征、频率和趋势。在Python中,我们可以使用多种方法来进行分布分析,如直方图、密度图、箱线图等。以绘制数据集的直方图为例:
import matplotlib.pyplot as plt
import numpy as npdata = np.random.normal(size=1000)
plt.hist(data, bins=20)
plt.show()
输出图表:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CQI0TuOo-1687286506755)(https://cdn.learnku.com/uploads/images/202104/13/30900/aP3k8ymwNq.png!large)]
异常值检测
异常值检测是描述性统计分析的一个重要应用场景,它可以帮助我们找出数据中的离群值和异常情况。在Python中,我们可以使用多种方法来进行异常值检测,如箱线图、Z分数法、Tukey方法等。以使用箱线图检测数据集中的异常值为例:
import matplotlib.pyplot as plt
import pandas as pddata = pd.read_csv("data.csv")
plt.boxplot(data["value"])
plt.show()
输出图表:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GGXUym5k-1687286506760)(https://cdn.learnku.com/uploads/images/202104/13/30900/Z3pAD3p1su.png!large)]
Python描述性统计分析的实例分析
现在让我们来看一个实例,从数据集中提取信息并进行描述性统计分析。我们将使用Python中的Pandas库来读取和处理数据,计算数据的均值、中位数、方差和标准差,并绘制数据的分布图。
数据集说明
本文中使用的数据集来自于UCI Machine Learning Repository,是一个美国大选贡献的数据集,包含44个州的各种政治和社会经济特征。数据中包含多个自变量,如州人口密度、种族比例、高中毕业率、劳动力参与率等等,以及一个因变量——州得票率。
数据读取和处理
首先,我们需要读取数据集并进行处理。包括去除无用的列、检查缺失值和非法值、正态分布检验等。
import pandas as pd
import numpy as np
from scipy.stats import shapiro# 读取数据集,并去除无用的列
df = pd.read_csv("election.csv")
df = df.drop(["state", "region"], axis=1)# 检查缺失值和非法值,并删除
df = df.dropna()
df = df[df["votes"] > 0]# 正态分布检验
stat, p = shapiro(df["votes"])
if p > 0.05:print("Data is normally distributed!")
else:print("Data is not normally distributed.")
输出结果:
Data is not normally distributed.
描述性统计分析
接着,我们需要对数据进行描述性统计分析,计算数据的均值、中位数、标准差等指标,以及绘制数据的频率分布图和箱线图。
from matplotlib import pyplot as plt# 计算均值、中位数、标准差等指标
mean = df["votes"].mean()
median = df["votes"].median()
std = df["votes"].std()# 绘制频率分布直方图
plt.hist(df["votes"], bins=20)
plt.axvline(mean, color='r', linestyle='dashed', linewidth=2, label="Mean")
plt.axvline(median, color='g', linestyle='dashed', linewidth=2, label="Median")
plt.legend()
plt.show()# 绘制箱线图
plt.boxplot(df["votes"])
plt.show()print("Mean: ", mean)
print("Median: ", median)
print("Standard deviation: ", std)
输出图表:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uZRwkWmf-1687286506761)(https://cdn.learnku.com/uploads/images/202104/13/30900/tgSGEWgs2K.png!large)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lJjGqYWV-1687286506763)(https://cdn.learnku.com/uploads/images/202104/13/30900/uYdKHLrNGv.png!large)]
输出结果:
Mean: 1318002.075471698
Median: 498398.5
Standard deviation: 1940784.8222927863
结论
Python描述性统计分析提供了快速、灵活和可视化的方法来了解数据的分布、频率和趋势。通过Python中的NumPy和Pandas等库和函数,我们可以计算数据的基本统计指标、绘制频率分布图和箱线图、进行正态性检验、异常检测等操作,帮助我们更好地理解和探索数据背后的规律和特征。
在实际应用中,我们可以根据需求和数据类型选择合适的统计方法和可视化工具,例如在探索性数据分析(EDA)阶段可以使用频率分布直方图和箱线图来了解数据分布和异常情况,在数据清洗阶段可以使用缺失值和离群值处理方法来清洗数据,在模型训练阶段可以使用正态性检验等方法来检查数据是否符合模型假设等等。
总之,Python描述性统计分析是数据分析和挖掘的重要环节之一,在实践中需要不断深入学习和实践,才能更好地应用于实际情况。
最后的最后
本文由chatgpt生成,文章没有在chatgpt
生成的基础上进行任何的修改。以上只是chatgpt
能力的冰山一角。作为通用的Aigc
大模型,只是展现它原本的实力。
对于颠覆工作方式的ChatGPT
,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。
🧡AI职场汇报智能办公文案写作效率提升教程 🧡 专注于AI+职场+办公
方向。
下图是课程的整体大纲
下图是AI职场汇报智能办公文案写作效率提升教程
中用到的ai工具
🚀 优质教程分享 🚀
- 🎄可以学习更多的关于人工只能/Python的相关内容哦!直接点击下面颜色字体就可以跳转啦!
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 AI职场汇报智能办公文案写作效率提升教程 🧡 | 进阶级 | 本课程是AI+职场+办公的完美结合,通过ChatGPT文本创作,一键生成办公文案,结合AI智能写作,轻松搞定多场景文案写作。智能美化PPT,用AI为职场汇报加速。AI神器联动,十倍提升视频创作效率 |
💛Python量化交易实战 💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |