数据分析(一)(附带实例和源码)

一、主要目的:

主要利用Python包,如Numpy、Pandas和Scipy等常用分析工具并结合常用的统计量来进行数据的描述,把数据的特征和内在结构展现出来。熟悉在Python开发环境中支持数据分析的可用模块以及其中的方法,基于一定的样例数据,编写数据分析过程的示例代码。

二、主要内容:

1.基本统计分析

基本统计分析又叫描述性统计分析,一般统计某个变量的最小值、第一个四分位值、中值、第三个四分位值以及最大值。

数据的中心位置是我们最容易想到的数据特征。借由中心位置,我们可以知道数据的一个平均情况,如果要对新数据进行预测,那么平均情况是非常直观的选择。数据的中心位置可分为均值(Mean)、中位数(Median)和众数(Mode)。其中均值和中位数用于定量的数据,众数用于定性的数据。对于定量数据来说,均值是总和除以总量N,中位数是数值大小位于中间(奇偶总量处理不同)的值,均值相对中位数来说,包含的信息量更大,但是容易受异常的影响。

描述性统计分析函数为describe。该函数返回值有均值、标准差、最大值、最小值、分位数等。括号中可以带一些参数,如percentitles=[0.2,0.4,0.6,0.8]就是指定只计算0.2、0.4、0.6、0.8分位数,而不是默认的1/4、1/2、3/4 分位数。

常用的统计函数有:

size:计数(此函数不需要括号)

sum():求和

mean():平均值

var():方差

std():标准差

2.分组分析

分组分析是指根据分组字段将分析对象划分成不同的部分,以对比分析各组之间差异性的一种分析方法。

常用的统计指标有:计数、求和、平均值

3.分布分析

分布分析是指根据分析的目的,将数据(定量数据)进行等距或不等距的分组,研究各组分布规律的一种分析方法。

4.交叉分析

交叉分析通常用于分析两个或两个以上分组变量之间的关系,以交叉表形式进行变量间关系的对比分析。一般分为定量、定量分组交叉;定量、定性分组交叉;定性、定型分组交叉。常用命令格式如下:

pivot_table(values,index,columns,aggfunc,fill_value)

5.结构分析

结构分析是在分组分析以及交叉分析的基础上,计算各组成部分所占的比重,进而分析总体的内部特征的一种分析方法。

这里分组主要是指定性分组,定性分组一般看结构,它的重点在于计算各组成部分占总体的比重。

6.相关分析

判断两个变量是否具有线性相关关系最直观的方法是直接绘制散点图,看变量之间是否符合某个变化规律。当需要同时考察多个变量间的相关关系时,一一绘制他们间的简单散点图是比较麻烦的。此时可以利用散点矩阵图同时绘制各变量间的散点图,从而快速发现多个变量间的主要相关性,这在进行多元线性回归时显得尤为重要。

相关分析是研究现象之间是否存在某种依存关系,并对具体有依存关系的现象探讨其相关方向以及相关程度,是研究随机变量之间的相关关系的一种统计方法。

为了更加准确地描述变量之间的线性相关程度,通过计算相关系数来进行相关分析,在二元变量的相关分析过程中,比较常用的有Pearson相关系数、Spearman秩相关系数和判定系数。Pearson相关系数一般用于分析两个连续变量之间的关系,要求连续变量的取值服从正态分布。不服从正态分布的变量、分类或等级变量之间的关联性可采用Spearman秩相关系数(也称等级相关系数)来描述。

相关系数可以用来描述定量变量之间的关系。

三、实现过程:

四、源码附件:

import pandas as pd

import numpy as np

from pandas import Series, DataFrame

df=pd.DataFrame({'成绩':[98,95,68,57,88,79]})

#描述性统计分析函数为describe。该函数返回值有均值、标准差、最大值、最小值、分位数等

#括号中可以带一些参数,如percentitles=[0.2,0.4,0.6,0.8]就是指定只计算0.2、0.4、0.6、0.8分位数,

print(df.成绩.describe())

#计数(此函数不需要括号)

print(df.成绩.size)

print("最大值", df['成绩'].max()) #

print("最小值",df['成绩'].min()) #

print("求总和",df['成绩'].sum()) #

print("求均值",df['成绩'].mean()) #

print("求方差",df['成绩'].var()) #

print("标准差",df['成绩'].std()) #

print("中位数",df['成绩'].median())

print("众数",df['成绩'].mode())

import pandas as pd

import numpy as np

#分组分析是指根据分组字段将分析对象划分成不同的部分,常用的统计指标有:计数、求和、平均值

df1=pd.DataFrame({'班级':["一班","二班","一班","一班","二班"],'姓名':["小明","小红","张明","小芳","小龙"],'成绩':[85,85,75,65,95],'年龄':[18,25,32,47,50],'性别':['男','女','男','女','男']})

print(df1)

aggResult = df1.groupby(by=['班级']) ['成绩'].agg([('总分',np.sum),('人数',np.size),('平均成绩',np.mean)])

print(aggResult)

bins = [min(df1.年龄)-1,20,30,40,max(df1.年龄)+1]

labels = ['20以下', '20到30', '30到40','40以上'];

#3、分布分析

df1['年龄分层'] = pd.cut(df1.年龄,bins,labels = labels)

print(df1)

#4、交叉分析 pivot_table(values,index,columns,aggfunc,fill_value)

ptResult = df1.pivot_table(values = ['年龄'],index = ['年龄分层'],columns = ['性别'],aggfunc=[np.size])

print(ptResult)

print(ptResult.sum())

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

# 随机数生成器的种子

np.random.seed(19680801)

N = 50

x = np.random.rand(N)

y = np.random.rand(N)

colors = np.random.rand(N)

area = (30 * np.random.rand(N))**2  # 0 to 15 point radii

plt.scatter(x, y, s=area, c=colors, alpha=0.5) # 设置颜色及透明度

plt.title("RUNOOB Scatter Test") # 设置标题

plt.show()

import numpy as np

import pandas as pd

data = pd.DataFrame({'A':np.random.randint(1, 100, 10),

                     'B':np.random.randint(1, 100, 10),

                     'C':np.random.randint(1, 100, 10)})

print(data)

print(data.corr())   # 计算pearson相关系数

print(data.corr('kendall'))      # Kendall Tau相关系数

print(data.corr('spearman'))     # spearman秩相关

五、心得

通过这次实验,我学习了Python中Pandas库的相关数据分析方法,包括描述性统计分析、计数、求最大值、最小值、总和、均值、方差、标准差、中位数和众数等基本操作。同时,我也了解了分组分析、分布分析、交叉分析等高级分析方法。

此外,我还学习了如何使用matplotlib库绘制散点图,以及如何计算Pearson相关系数、Kendall Tau相关系数和Spearman秩相关。这些都是数据分析中非常重要的技能,尤其是相关系数的计算,可以帮助我们理解变量之间的关系。

通过实验,我明白了理论知识和实际操作的结合是非常重要的,只有动手实践,才能更好地理解和掌握知识。同时,我也意识到数据分析是一个需要细心和耐心的过程,每一步都不能马虎。

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

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

相关文章

前端视角看 Docker : 基础命令全面指南

引言 Docker是一种开源的容器化平台,它允许开发者将应用程序和其依赖打包在一个轻量级的、可移植的容器中。这使得应用程序在不同的环境中部署变得简单且高效。本文将介绍Docker的一些基础命令和概念,帮助初学者快速上手。 1. Docker简介 Docker使用…

pl_vio线特征·part II

pl_vio线特征part II 0.引言4.线段残差对位姿的导数4.1.直线的观测模型和误差4.2.误差雅克比推导4.3.误差雅可比求导简洁版(不含imu坐标系转换)4.4.相关代码 0.引言 pl_vio线特征part I 现在CSDN有字数限制了,被迫拆分为两篇文章。 4.线段残差对位姿的导数 这一小…

ASP.NET MVC权限管理系实战之一验证码功能实现

1,权限的管理系统:开发项目必备的一个的功能;该项目使用 ASP.NET MVC5 SqlServer EF6 IOC容器 BoostStrap 2,登录界面验证码功能实现,整体效果如下; 3,接下来就是代码部分实现,前端…

白盒测试、接口测试、自动化测试

一、什么是白盒测试 白盒测试是一种测试策略,这种策略允许我们检查程序的内部结构,对程序的逻辑结构进行检查,从中获取测试数据。白盒测试的对象基本是源程序,所以它又称为结构测试或逻辑驱动测试,白盒测试方法一般分…

在Windows上通过VS2019自带的Cmake来编译OpenCV-4.5.3源码

文章目录 用VS打开OpenCV源码cmake的配置及生成操作生成及安装 用VS打开OpenCV源码 方式一:文件–》打开–》Cmake 找到源码根目录下CMakeLists.txt文件 导入即可。 方式二:在开始使用这里 选择 打开本地文件夹 找到源码的根目录,导入即可…

[NAND Flash 4.1] Flash(闪存)存储器底层原理 | 闪存存储器重要参数

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< ​全文 5000 字。 从底层物理原理上了解 Nand Flash。 1. 存储器诞生&#xff1a; 现代计算机使用存储器来存储数据&#xff0c;其…

插入排序----希尔排序

希尔排序 希尔排序法又称缩小增量法。希尔排序法的基本思想是&#xff1a;先选定一个整数&#xff0c;把待排序文件中所有记录分成个gap组&#xff0c;所有距离为的记录分在同一组内&#xff0c;并对每一组内的记录进行排序。然后&#xff0c;取&#xff0c;重复上述分组和排序…

QT:Unable to create a debugging engine.

debug跑不了&#xff1a; 报错&#xff1a;Unable to create a debugging engine. 参考&#xff1a; https://blog.csdn.net/u010906468/article/details/104716198 先检查是否安装了DEBUG插件 工具-》》选项 查看插件&#xff0c;如果没有的话&#xff0c;需要重新安装qt时…

加密的艺术:对称加密的奇妙之处(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

一些关于fMRI脑数据的预处理工具

一些关于fMRI脑数据的预处理工具 前言概述SPM12工具箱FSL工具箱FreeSurfer工具箱BrainNet Viewer工具箱circularGraph工具箱Nipype集成框架fMRIPrep集成框架参考文献 前言 March 25, 2022 这里是关于fMRI脑数据的预处理工具的相关调研 主要是关于数据的预处理&#xff0c;数据…

Windows环境提示“‘mysql‘ 不是内部或外部命令,也不是可运行的程序或批处文理件” 简易记录

在Windows环境下使用DOS命令窗登入MYSQL&#xff0c;提示“mysql 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。” 这意味着系统无法找到 mysql.exe可执行文件&#xff0c;这是因为 MySQL 没有正确安装或未添加到系统PATH环境变量中所致。 处理方法&#x…

分组背包问题笔记

分组背包是选不同的组&#xff0c;每个组中只能选一个物品。分组背包就是01背包的变种&#xff0c;多重背包就是特殊的分组背包。 //分组背包 #include<iostream> using namespace std; const int N 110; int f[N], v[N], w[N], n, m;int main() {ios::sync_with_stdio(…

ShardingSphereJDBC简单入门

ShardingSphere 介绍ShardingSphere-JDBCSharding-Sphere-ProxyShardingSphere-Sidecar混合架构运行模式DistSQL可拔插架构ShardingSphere的发展路线 主从复制ShardingSphere-JDBC功能SQL解析SQL支持程度SQL稳定支持SQL实验性支持 MySQL不支持SQL清单分页 数据分片垂直分片水平…

Python 爬虫开发完整环境部署,爬虫核心框架安装

Python 爬虫开发完整环境部署 前言&#xff1a; ​ 关于本篇笔记&#xff0c;参考书籍为 《Python 爬虫开发实战3 》 笔记做出来的一方原因是为了自己对 Python 爬虫加深认知&#xff0c;一方面也想为大家解决在爬虫技术区的一些问题&#xff0c;本篇文章所使用的环境为&#x…

关于Ubuntu22.04恢复误删文件的记录

挂载在Ubuntu22.04下的固态盘有文件被误删了&#xff0c;该固态盘是ntfs格式的。 在网上找了很多教程&#xff0c;最后决定用TestDisk工具进行恢复。 现记录如下&#xff1a; Ubuntu安装testdisk sudo apt-get install testdisk运行testdisk sudo testdisk得到 我选择的是…

英伟达 Jetson Xavier/Xavier NX/Orin系统移植编译

英伟达 Jetson Xavier/Xavier NX/Orin系统移植编译 1、下载Jetson BSP包和交叉编译环境 地址&#xff1a;https://developer.nvidia.com/embedded/jetson-linux-archive下载需要版本即可&#xff0c;此次编译采用32.4.2版本 需要下载的文件如下&#xff1a; 2、新建一个文件…

LeetCode(66)二叉树的最大深度【二叉树】【简单】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 二叉树的最大深度 1.题目 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7]…

Python类调用实例方法

在 Python 的类体中定义的方法默认都是实例方法&#xff0c;通过对象来调用实例方法。 但要提醒大家的是&#xff0c;Python 的类在很大程度上是一个命名空间&#xff0c;当程序在类体中定义变量、方法时&#xff0c;与前面介绍的定义变量、定义函数其实并没有太大的不同。对比…

解析神器Xpath详解+实战

解析神器Xpath详解实战 有同学说&#xff0c;我正则用的不好&#xff0c;处理HTML文档很累&#xff0c;有没有其他的方法&#xff1f; 有&#xff01;那就是XPath&#xff0c;我们可以先将 HTML文件 转换成 XML文档&#xff0c;然后用 XPath 查找 HTML 节点或元素。 目标&am…

【KMP】【判断是否是重复子字符串】Leetcode 459 重复的子字符串

【KMP】【判断是否是重复子字符串】Leetcode 459 重复的子字符串 解法1 拼接字符串-掐头去尾后判断是否含有原字符串解法2 KMP——重复子串的最小单位是这个字符串里的最长相等前后缀所不包含的子串解法3 暴力解法KMP ---------------&#x1f388;&#x1f388;题目链接&…