python对一组数据进行描述性统计

描述性统计

描述性统计是一种统计学方法,用于总结和描述数据的主要特征。它可以帮助我们了解数据的中心位置、分散程度和形状等信息。以下是一些常用的描述性统计量:

中心趋势的度量:
1、均值(Mean):所有数据点的总和除以数据点的数量。
2、中位数(Median):将数据集从小到大排序后,位于中间位置的数值。
3、众数(Mode):数据集中出现次数最多的数值。

离散程度的度量:
4、方差(Variance):衡量数据点与均值的平均偏差平方。
5、标准差(Standard Deviation):方差的平方根,用于描述数据的分散程度。
6、四分位数(Quartiles):将数据集分为四等份的数值,包括Q1(第一四分位数)、Q2(第二四分位数,即中位数)和Q3(第三四分位数)。
7、最小值(Minimum):数据集中的最小数值。
8、最大值(Maximum):数据集中的最大数值。
9、极差(Range):最大值与最小值之差,用于描述数据的分布范围。
10、变异系数(Coefficient of Variation,简称 CV):是一个统计学上的度量,用于描述数据的相对离散程度,即标准差与均值的比值,通常以百分比形式表示。变异系数用于比较不同数据集的离散程度,尤其是在数据集的均值差异很大的情况下。

分布形态的描述:
11、偏度(Skewness):描述数据分布的对称性,正值表示右偏,负值表示左偏。
12、峰度(Kurtosis):描述数据分布的尖峭程度,正值表示比正态分布更尖峭,负值表示比正态分布更平坦。
13、K-S检验与P值:K-S检验,即Kolmogorov-Smirnov检验,是一种非参数检验方法,用于评估一个数据集是否符合某个特定的分布,或者比较两个数据集是否来自同一分布。K-S检验不需要假设数据服从正态分布,因此它是一种非常灵活的检验方法。
在实际应用中,我们通常设定一个显著性水平(例如0.05),如果P值小于这个显著性水平,我们就会拒绝原假设,认为数据集与假设的分布存在显著差异,或者两个数据集不是来自同一分布。相反,如果P值大于显著性水平,我们没有足够的证据拒绝原假设,认为数据集符合假设的分布,或者两个数据集来自同一分布。

图形表示:
14、频数分布表(Frequency Distribution Table):列出数据的各个值及其出现的频数。
15、直方图(Histogram):用条形图表示数据的频数分布。
16、箱线图(Box Plot):显示数据的五个数值总结(最小值、第一四分位数、中位数、第三四分位数、最大值)及可能的异常值。
17、散点图(Scatter Plot):用点表示两个变量之间的关系。

Python代码

import numpy as np
import pandas as pd
from scipy import statsclass DescriptiveStatistics:def __init__(self, numbers):self.numbers = numbers# 求一组数据均值def mean(self):return np.mean(self.numbers)# 求一组数据中位数def median(self):return np.median(self.numbers)# 求一组数据众数def mode(self):# 众数mode_result = stats.mode(self.numbers)mode = mode_result[0]# 众数出现的次数mode_count = mode_result[1]return mode, mode_count# 求一组数据方差def var(self):return np.var(self.numbers)# 求一组数据标准差def std(self):return np.std(self.numbers)# 标准差是方差的平方根# return math.sqrt(self.var())# 求一组数据四分位数def quartile(self):q1 = np.percentile(self.numbers, 25)# q2也是中位数q2 = np.percentile(self.numbers, 50)q3 = np.percentile(self.numbers, 75)return q1, q2, q3# 求最小值def min(self):return np.min(self.numbers)# 求最大值def max(self):return np.max(self.numbers)# 求极差def range(self):return np.ptp(self.numbers)# return self.max() - self.min()# 求变异系数def cv(self):# 变异系数为标准差与均值的比值,通常用百分数表示return (self.std() / self.mean()) * 100# 求偏度def skewness(self):return stats.skew(self.numbers)# 求峰度def kurtosis(self):return stats.kurtosis(self.numbers)# K-S检验def ks_test(self):# 判断一组数据是否符合正态分布d_statistic, p_value = stats.kstest(self.numbers, 'norm',(self.mean(), self.std()))# 判断一组数据是否符合标准正态分布,均值为0,标准差为1的正态分布d_statistic1, p_value1 = stats.kstest(self.numbers, 'norm',args=(0, 1))if p_value > 0.05:print('数据符合正态分布')if p_value1 > 0.05:print('数据符合标准正态分布')else:print('数据不符合标准正态分布')else:print('数据不符合正态分布')return d_statistic, p_value, d_statistic1, p_value1# 整理打印结果def output(self):print_result = [{'mean': self.mean(), 'median': self.median(), 'mode': self.mode(),'max': self.max(), 'min': self.min(), 'range': self.range(),'var': self.var(), 'std': self.std(), 'skewness': self.skewness(),'quartile': self.quartile(), 'cv': self.cv(), 'kurtosis': self.kurtosis(),'ks_test': self.ks_test()}]# 将打印结果转换为Pandas DataFramedf = pd.DataFrame(print_result)# # 保存为CSV文件# df.to_csv('output.csv', index=False)# 返回DataFramereturn dfif __name__ == '__main__':number = [1, 2, 3, 4, 5, 6, 7, 7, 8]ds = DescriptiveStatistics(number)print(ds.mean())print(ds.median())print(ds.mode())print(ds.var())print(ds.std())print(ds.quartile())print(ds.range())print(ds.cv())print(ds.skewness())print(ds.kurtosis())print(ds.ks_test())print(ds.output())

打印结果:

4.777777777777778
5.0
(7, 2)
5.28395061728395
2.2986845406196887
(3.0, 5.0, 7.0)
7
48.11200201297023
-0.22135555123008172
-1.2793038693335659
数据符合正态分布
数据不符合标准正态分布
(0.16649544279946027, 0.9308963502001697, 0.8661387569407097, 2.7602046369131942e-08)
数据符合正态分布
数据不符合标准正态分布mean  ...                                            ks_test
0  4.777778  ...  (0.16649544279946027, 0.9308963502001697, 0.86...[1 rows x 13 columns]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/18071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rk3568_semaphore

文章目录 前言1 什么是信号量1.1 信号量API函数2、信号量实验2.1 实验目的2.2函数源码2.3 运行结果图前言 本文记录rk3568开发板的信号量实验 1 什么是信号量 信号量是同步的一种方式,常常用于控制对共享资源的访问。 举个例子:停车场的停车位有100个,这100个停车位就是共…

C语言:创建简单的流媒体服务器来播放.flv文件

编写 httpFlv_server.cpp 如下 #include <iostream> #include <stdint.h> #include <stdlib.h> #include <string.h> #include <WinSock2.h> #include <WS2tcpip.h> #pragma comment(lib, "ws2_32.lib")char* get_filename(c…

【Python】 如何将列表转换为字符串

基本原理 在Python中&#xff0c;列表&#xff08;list&#xff09;和字符串&#xff08;string&#xff09;是两种不同的数据类型。列表是一个有序的元素集合&#xff0c;可以包含不同类型的元素&#xff0c;而字符串则是一个字符序列。有时&#xff0c;我们可能需要将列表中…

【chagpt】广泛使用API之前:考虑成本和数据隐私

文章目录 一. 定价和标记限制二. 安全和隐私 在广泛使用API之前&#xff0c;应该考虑两个重要因素&#xff1a;成本和数据隐私。 一. 定价和标记限制 OpenAI在Pricing页面上列出了模型的定价。请注意&#xff0c;OpenAI不一定及时更新该页面上的定价信息&#xff0c;因此实际…

【AI学习】什么是token?

在近期举办的Stripe Sessions用户大会上&#xff0c;移动支付巨头Stripe的联合创始人兼CEO帕特里克克里森&#xff08;Patrick Collison&#xff09;&#xff0c;与英伟达CEO黄仁勋进行了一场炉边对话。 黄仁勋提到&#xff1a;“我们正在经历一场前所未有的工业革命。这次工业…

预训练模型语义相似性计算(十一) - M3E和BGE

M3E m3e由MokaAI 训练&#xff0c;开源和评测。 m3e的详细介绍可以看官方的github介绍。本文简要摘录其中一些点&#xff0c;以便后续的应用。 1.千万级 (2200w) 的中文句对数据(开源)。 2.支持同质相似句计算(s2s)和异质检索(s2p)&#xff0c;后续支持代码检索。 3.m3e基座模…

MySQL 满足条件函数中使用查询最大值函数

在实际的数据库操作中&#xff0c;我们常常需要根据某些条件找到最大值并据此进行下一步的操作。例如&#xff0c;在一个包含订单信息的表中&#xff0c;可能需要找到特定客户的最大订单金额&#xff0c;并据此进行某些统计或决策。MySQL 提供了多种函数和查询方法&#xff0c;…

C# 泛型函数

1.非约束 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace MyGeneirc {public class GeneircMethod{/// <summary>/// 泛型方法解决&#xff0c;一个方法&#xff0c;满足不同参数类型…

JVM学习-彻底搞懂Java自增++

从字节码角度分析i和i的区别 public void method6() {int i 10;i; //在局部变量表上直接加1}public void method7() {int i 10;i; //字节码同i}public void method8() {int i 10;int a i; //通过下图可以看出先将局部变量表中的值push到操作数栈&#xff0c;然…

springboot项目部署到linux服务器

springboot后端 修改前 修改后 vue前端 修改前 将地址中的 localhost改为 ip 重新生成war包 war上传到linux的tomcat的webapps下 其他环境配置和macOS大差不差 Tomcat安装使用与部署Web项目的三种方法_tomcat部署web项目-CSDN博客

rk3568_mutex

文章目录 前言1、什么是mutex?1.1mutex互斥体API函数二、实验2.1实验目的2.2源码2.3结果图前言 本文记录的是rk3568开发板基础上做的mutex实验 1、什么是mutex? mutex是互斥体,它是比信号量semaphore更加专业的机制。 在我们编写Linux驱动的时候遇到需要互斥的地方建议使用…

css3 笔记01

目录 01 css3选择器 02 伪类选择器 03 伪元素选择器 04 文章分割列 05 浏览器hack写法 06 css3中的2D转换 01 css3选择器 选择器选择器{} 表示选择下一个兄弟 选择器1~选择器2{} 表示选中选择1后面所有包含选择器2的元素. [属性名]{} 包含属性名的选择器 选择器[属性名]…

Linux用户管理指令004

1、useradd 是用于创建新用户的命令。以下是 useradd 命令的一些常用选项及其简要说明&#xff0c;以清晰的分点方式表示&#xff1a; -u, --uid UID指定用户的用户ID&#xff08;UID&#xff09;。如果不指定&#xff0c;系统通常会分配一个未使用的最小UID。 -g, --gid GROUP…

Matlab读取Swarm球谐系数,并绘制EWH全球格网图(存在疑问)

ICGEM官网下载 COST-G发布的4040的球谐系数 close all; clearvars -except; % addpath(E:\Code\Tool\Function\GRACE_functions); dir_degree_1 E:\Code\GRACE_data\Degree_1\deg1_coef.txt; dir_c20 E:\Code\GRACE_data\Degree_2\C20_RL06.txt; myDir_Swarm E:…

深入理解栏目函数:从基础结构到实际应用

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、栏目函数的基本结构解析 代码案例 二、栏目函数的参数理解与返回值探究 参数取值与返…

2024年上半年软件设计师试题及答案(回忆版)

目录 基础知识选择题案例题1.缺陷识别的数据流图2.球队、球员、比赛记录的数据库题3.用户、老师、学生、课程用例图4.算法题5.程序设计题基础知识选择题 树的节点,度为4的有4个,度为3的有8个,度为2个有6个,度为1的有10个,问有几个叶子结点 二位数组,一个元素2个字节,A0…

pgsql 多个模式相同的表获取主键

pgsql 有一个库, 里面有多个模式, 每个模式下可能有相同的表, 如何获取表的主键 SELECT tc.table_schema AS 模式, tc.table_name AS 表名, kcu.column_name AS 列名 FROM information_schema.table_constraints AS tc JOIN information_schema.key_colum…

php TP8 阿里云短信服务SDKV 2.0(跳大坑)

安装&#xff1a;composer require alibabacloud/dysmsapi-20170525 2.0.24 官方文档&#xff1a;短信服务_SDK中心-阿里云OpenAPI开发者门户 (aliyun.com) 特别注意&#xff1a;传入参数获得值形式 这样也不行 $sendSmsRequest new SendSmsRequest($addData); 还有一个大坑…

大模型日报2024-05-28

大模型日报 2024-05-28 大模型资讯 SDAIA的阿拉伯语大模型ALLaM在IBM watsonx上全面运行 摘要: 由沙特数据和人工智能局&#xff08;SDAIA&#xff09;开发的开源阿拉伯语大语言模型ALLaM现已在IBM的watsonx平台上全面运行。 AI公司Anthropic揭示大语言模型内在工作机制 摘要: …

【CSharp】无符号短整型数组ushort[]转化为IntPtr

【CSharp】无符号短整型数组ushort[]转化为IntPtr 1.背景2. 代码1.背景 我们的相机或者探测器是一个感光的传感器,一般将光波打到闪烁体上,闪烁体发光后进行光电转换得到电信号,您可以这么简单的去理解。 这里就设计相机传感器上的AD转换器(模拟信号->数字信号)的bit数…