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

一、主要目的:

主要利用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秩相关。这些都是数据分析中非常重要的技能,尤其是相关系数的计算,可以帮助我们理解变量之间的关系。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows中安装Git软件和TortoiseGit软件

1、git软件下载地址 https://git-scm.com/download/win 2、TortoiseGit软件下载 >https://tortoisegit.org/download/ 3、软件安装 4、环境安装说明 上面介绍的是在Windows中使用git,如果你电脑已经装了Ubuntu系统,可以直接在Ubuntu中使用git命令提…

arthas获取spring bean

参考文章 arthas获取spring bean 写一个工具Util package com.example.lredisson.util;import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import o…

[RK-Linux] 移植Linux-5.10到RK3399(七)| 检查GPIO与LED节点,使能风扇接口

文章目录 一、原理图二、设备树配置三、节点控制一、原理图 ROC-RK3399-PC Pro 的 LED 接口如图: 工作灯 WORK_LED (蓝色灯)网络连接到 GPIO2_D3: DIY_LED (红色灯)网络连接到 GPIO0_B5: ROC-RK3399-PC Pro 要控制的 GPIO 接口主要是风扇,如图: FAN_CTL 网络连接到

【Java】SpringBoot中实现Redis Stream队列

SpringBoot实现Redis Stream队列 前言 简单实现一下在SpringBoot中操作Redis Stream队列的方式,监听队列中的消息进行消费。 jdk:1.8 springboot-version:2.6.3 redis:5.0.1(5版本以上才有Stream队列)…

【C++】STL 容器 - string 字符串操作 ⑤ ( string 字符串查找 | find 函数查找字符串 | rfind 函数查找字符串 )

文章目录 一、string 字符查找 - find 函数查找字符串1、string 类 find 函数原型说明2、代码示例 - 字符串查找3、代码示例 - 统计字符串子串 二、string 字符查找 - rfind 函数查找字符串1、string 类 rfind 函数原型说明2、代码示例 - rfind 字符串查找 一、string 字符查找…

前端常用去重的几种方式

文章目录 方式1: ES6新语法方式2: 遍历 利用filter方式3: 使用 new Map() for循环方式4: 利用 hasOwnProperty总结 在github 查看该文章 方式1: ES6新语法 过滤出网页中不重复的html标签 结合去重知识点考查 […new Set([…document.querySelectorAll(‘*’)].map(v>v.t…

HTML5+CSS3小实例:3D发光切换按钮效果

目录 一、运行效果 图片效果 二、项目概述 三、开发环境 四、实现步骤及代码 1.创建空文件夹 2.完成页面内容 3.完成css样式 五、项目总结 六、源码获取 一、运行效果 图片效果 二、项目概述 这个项目是一个演示3D发光切换按钮效果的网页。按钮由一个开关和一个指…

spring6 基于xml自动装配

目录结构 代码 UserContronller.java package bean.auto.controller;import bean.auto.service.UserService; import bean.auto.service.UserServiceImpl;public class UserContronller {private UserService userService;public void setUserService(UserService userServ…

智能配电房在线监测系统

智能配电房在线监测系统是一个综合性的系统,依托电力智慧运维工具-电易云,主要用于监控和调整配电房的环境、安防和电气设备状态。以下是该系统的一些主要功能和特点: 环境监控:实时监测配电房内的温度、湿度、SF6气体浓度、臭氧浓…

Cmake基础(4)

这篇文章在上一篇的基础之上应用多文件,即一个项目中添加多个文件 文章目录 GLOBsource_group排除文件 上一篇文章的cmake基本不变,这篇文章的重点在于add_executable(${EXECUTABLE_NAME} main.cpp) GLOB file(GLOB cpp_list ${CMAKE_CURRENT_SOURCE_…

【Python特征工程系列】8步教你用决策树模型分析特征重要性(源码)

一、问题 如果有一个包含数十个甚至数百个特征的数据集,每个特征都可能对你的机器学习模型的性能有所贡献。但是并不是所有的特征都是一样的。有些可能是冗余的或不相关的,这会增加建模的复杂性并可能导致过拟合。特征重要性分析可以识别并关注最具信息量…

浅谈MapReduce

MapReduce是一个抽象的分布式计算模型,主要对键值对进行运算处理。用户需要提供两个自定义函数: map:用于接受输入,并生成中间键值对。reduce:接受map输出的中间键值对集合,进行sorting后进行合并和数据规…

linux下的strerror和perror处理错误函数

strerror和perror是C语言中用于处理错误信息的函数。 strerror函数: strerror函数用于将错误码转换为对应的错误消息字符串。它接受一个整数参数,通常是由系统调用或库函数返回的错误码,然后返回一个描述该错误的字符串。 函数原型&#xff1…

双指针训练

1.原理 双指针是一种解题常用方法,常用于将数组按照某种要求进行分块/划分,这里的指针对于数组来说,可以替换成下标(毕竟使用下标实际上就是用了指针)。 1.1.划分区间 通常将这两个指针命名位dest/cur(或…

AOP切入点表达式和使用连接点获取匹配到的方法信息

目录 第一种 execution(访问修饰符? 返回值 包名.类名.?方法名(方法参数) throws 异常?) 第二种 annotation(com.itheima.anno.Log 首先,自定义一个注解,可以自己随意命名: 第一种 execution(访问修饰符? 返回值 包名.类名.?方法名…

网络编程-认识套接字socket

文章目录 套接字概念端口号网络字节序 套接字类型流套接字数据报套接字 socket常见APIsocket函数bind函数listen函数accept函数connect函数sockaddr结构 套接字概念 socket套接字是进程之间一种通信机制,通过套接字可以在不同进程之间进行数据交流。在TCP/UDP中&…

【golang/g3n】3D游戏引擎G3N的windows安装与测试

目录 说在前面安装测试 说在前面 操作系统:win 11go version:go1.21.5 windows/amd64g3n版本:github.com/g3n/engine v0.2.0其他:找了下golang 3d相关的库,目前好像就这个比较活跃 安装 按照官方教程所说,…

Electron框架:构建跨平台桌面应用的终极解决方案

文章目录 一、Electron框架简介二、Electron框架的优势1. 开发效率高2. 跨平台性能好3. 易于维护4. 强大的原生能力 三、如何使用Electron框架快速开发跨平台桌面应用1. 安装Electron2. 创建项目文件夹3. 编写主进程代码4. 编写界面代码5. 运行应用 《Electron入门与实战》编辑…

nginx_rtmp_module 之 ngx_rtmp_mp4_module 的mp4源码分析

一:整体代码函数预览 static ngx_int_t ngx_rtmp_mp4_postconfiguration(ngx_conf_t *cf) {ngx_rtmp_play_main_conf_t *pmcf;ngx_rtmp_play_fmt_t **pfmt, *fmt;pmcf ngx_rtmp_conf_get_module_main_conf(cf, ngx_rtmp_play_module);pfmt ngx_ar…

极兔速递物流查询,用表格导出单号的每一条物流信息

批量查询极兔速递单号的物流信息,并以表格的形式导出单号的每一条物流信息。 所需工具: 一个【快递批量查询高手】软件 极兔速递单号若干 操作步骤: 步骤1:运行【快递批量查询高手】软件,第一次使用的朋友记得先注册…