Python主要数据探索函数

python中主要数据探索函数在pandas和matplotlib两个库中。其中前者主要对数据进行分析,后者主要进行数据可视化。本节结合两个库进行初步的整理。

(提一嘴:matplotlib里面默认执行的操作对象是matrix矩阵,所以即使是一个数也可以称为矩阵)

一些基本的统计特征函数

以下这些函数主要作为pandas的对象DataFrame或Series的方法出现。

pandas库中的一些基本统计函数
sum()默认按列计算数据样本的和D.sum()
mean()计算数据样本的平均值D.mean()
var()计算数据样本的方差D.var()
std()计算数据样本的标准差D.std()
corr()计算数据样本的相关系数矩阵(默认是Spearman)

D.corr(method='pearson')

S1.corr(S2,method='pearson')

cov()计算数据样本的协方差矩阵

D.cov()

S1.cov(S2)

skew()计算数据样本的偏度

D.skew()

kurt()计算数据样本的峰度D.kurt()
describe()给出数据样本的基本描述D.describe()

其中,D表示DataFrame类型的数据对象,S表示Series的数据对象。以上这些方法中仍然含有很多的默认值可以修改。

以下展示一些基本统计函数的实践代码:

# 代码3-10 计算两个列向量的相关系数
import pandas as pd#导入pandas库并且用pd标记
D = pd.DataFrame([range(1, 8), range(2, 9)])  # 生成样本D,用pandas库中的DataFrame方法生成一个严格本,0行为1~7,1行为2~8
print(D)
print(D.corr(method='spearman'))  # 计算相关系数矩阵,得出的结果是矩阵,计算每一个数与每一个数实践的Spearman秩相关系数
S1 = D.loc[0]  # 提取第一行
S2 = D.loc[1]  # 提取第二行
print(S1.corr(S2, method='pearson'))  # 计算S1、S2的相关系数,两个Series对象的相关系数是一个对象
# 代码3-11 计算6×5随机矩阵的协方差矩阵
import pandas as pd
import numpy as np
D = pd.DataFrame(np.random.randn(6, 5))  # 产生6×5随机矩阵np.random.randn(6, 5)
print(D)
print(D.cov())  # 计算协方差矩阵
print(D[0].cov(D[1]))  # 计算第一列和第二列的协方差
# 代码3-12 计算6×5随机矩阵的偏度(三阶矩)∕峰度(四阶矩)
import numpy as np
import pandas as pd
D = pd.DataFrame(np.random.randn(6, 5))  # 产生6×5随机矩阵
print(D)
print(D.skew())  # 计算偏度
print(D.kurt())  # 计算峰度
# 代码3-13 6×5随机矩阵的describe
import pandas as pd
import numpy as np
D = pd.DataFrame(np.random.randn(6, 5))  # 产生6×5随机矩阵
print(D)
print(D.describe())

拓展统计特征函数

主要介绍两种:累积计算(cum)和滚动计算(pd.rolling_),其中cum系列函数是作为DataFrame或者Series对象的方法而出现的,因此命令格式为D.cum***()。而rolling_系列函数是pandas的函数,不是DataFrame或Series对象的方法,它的使用格式为pd.rolling_***(D,k),意思是每k列计算一次均值,滚动计算。

cumsum()依次给出前1,2,……n个数的和
cumprod()依次给出前1,2,……n个数的积
cummax()依次给出前1,2,……n个数的最大值
cummin()依次给出前1,2,……n个数的最小值

而对于rolling系列的算法,只要在之前的基本的统计函数前面加上rolling_就可,例如rolling_sum(),再如rolling_mean()。

例如如下代码:

# 代码3-14 pandas累积统计特征函数、移动窗口统计函数示例import pandas as pd
D=pd.Series(range(0, 20))  # 构造Series,内容为0~19共20个整数
print(D)
print(D.cumsum())  # 给出前n项和,这是一个一个个累计求和然后展示出来的方法
print(D.rolling(2).sum())  # 依次对相邻两项求和,是每两个两个求

统计绘图函数

下面介绍的是一些基本的绘图函数,是pandas库和Matplotlib库的结合使用。

先简单介绍一下各个绘图函数什么意思:

plot()绘制线性二维图,折线图
pie()绘制饼图
hist()绘制二维条形直方图,可显示数据的分配类型
boxplot()绘制样本数据的箱型图
plot(logy=True)绘制y轴的对数图形
plot(yerr=error)绘制误差条形图

多提一句,在每次使用这些绘图函数时,一般都要使用一些加载代码,这个东西比较的固定。

# 代码3-15 绘图之前需要加载的代码
import matplotlib.pyplot as plt  # 导入绘图库
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
plt.figure(figsize = (7, 5))  # 创建图像区域,指定比例

以下具体展示每个函数的使用方法:

1.plot

一共有两种使用格式。

(1)plt.plot(x,y,S)

这种是plot函数最基础的使用方法,其中x是自变量,y是因变量,S是绘制图形的类型、样式和颜色。

详情请见以下博客。

Python直接使用plot()函数画图-CSDN博客一、plot()函数的认识在使用Python进行数据可视化编程中matplotlib库是我们用来对数据进行画图常用的第三方库。其中含有各类函数也就是不同类型的图形,要使用matplotlib库中的函数就需要了解函数所需要数据的格式,这也是我们学习matplotlib库的重点。直接使用plot()函数画图,是对于一般的简单数据。我们可以采用直接调用plot()函数对列表数据进行直接画图。初期学习直接使用plot()函数能便于我们对后面图形学习奠定函数的参数及基础。matplotlib图的组成:https://blog.csdn.net/Sheenky/article/details/123976807?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167861432216782425142242%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167861432216782425142242&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-123976807-null-null.142^v73^insert_down1,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=plot%EF%BC%88%EF%BC%89&spm=1018.2226.3001.4187(2)D.plot(kind='***')

表示对D进行***类型的绘图。其中D是DataFrame类型或者是Series类型。有点自动生成的意味。同时在使用这种kind方法之后还可以使用上面提到的plot(x,y,S)的一些命令。

line线
bar条形
barh水平方向的条形图
hist直方图
box箱型图
kde密度图
area区域图
pie饼状图

举个例子:

我遇到的问题

解决办法:

没有在绘图前加载需要加载的代码。

具体的代码如下:

# 代码3-16 绘制一条蓝色的正弦虚线
# 代码3-15 绘图之前需要加载的代码
import matplotlib.pyplot as plt  # 导入绘图库
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
plt.figure(figsize = (7, 5))  # 创建图像区域,指定比例
#一定要提前加载这些代码,这些代码是绘图库的代码
import numpy as np
x = np.linspace(0,2*np.pi,50)  # x坐标输入
y = np.sin(x)  # 计算对应x的正弦值
plt.plot(x, y, 'bp--')  # 控制图形格式为蓝色带星虚线,显示正弦曲线
plt.show()

运行结果如下:

 

2.pie

使用方法:plt.pie(size),其中size是一个列表,记录各个扇形的面积比例。pie()函数有很多丰富的参数。

一些具体的参数请参考如下链接。

Matplotlib——饼图pie()函数_上课不要睡觉了的博客-CSDN博客**饼图(扇形图)**是一种常见的可以表示离散变量各水平占比情况的一种统计图。Matpllotlib提供了pie()函数用于绘制饼图。import matplotlib.pyplot as plt_ = plt.pie(range(5))plt.show()pie()提供一些详细选项如下。plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=Falsehttps://blog.csdn.net/XQC_KKK/article/details/123550644?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167861569716800225533395%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167861569716800225533395&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-123550644-null-null.142^v73^insert_down1,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=pie%EF%BC%88%EF%BC%89&spm=1018.2226.3001.4187

具体的代码展示如下:

import matplotlib.pyplot as plt  # 导入绘图库
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
plt.figure(figsize = (7, 5))  # 创建图像区域,指定比例# The slices will be ordered and plotted counter-clockwise.
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'  # 定义标签
sizes = [15, 30, 45, 10]  # 每一块的比例,这个列表可以后来导入,先标记,再读,再标记
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']  # 每一块的颜色
explode = (0, 0.1, 0, 0)  # 突出显示,这里仅仅突出显示第二块(即'Hogs')plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=90)
#这些参数
plt.axis('equal')  # 显示为圆(避免比例压缩为椭圆)
plt.show()

运行结果如下:

 3.hist

使用格式:plt.hist(x,y),其中x是待绘制直方图的一维数组。y可以是整数也可以是列表。如果是整数的话,表示将x均分为y组;如果是列表,列表中各个数字为分组的边界点,也就是手动设置分界点。

举个例子,具体代码如下。

# 代码3-18 绘制二维条形直方图import matplotlib.pyplot as plt  # 导入绘图库
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
plt.figure(figsize = (7, 5))  # 创建图像区域,指定比例import numpy as np
x = np.random.randn(1000)  # 1000个服从正态分布的随机数
plt.hist(x, 10)  # 分成10组进行绘制直方图
plt.show()

运行结果如下:

4.boxplot

使用方法:D.boxplot() 或者 D.plot(kind='box')

具体代码如下:

# 代码3-19 绘制箱型图import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
x = np.random.randn(1000)  # 1000个服从正态分布的随机数
D = pd.DataFrame([x, x+1]).T  # 构造两列的DataFrame
D.plot(kind = 'box')  # 调用Series内置的绘图方法画图,用kind参数指定箱型图box
plt.show()

运行结果如下:

 5.plot(logx=True)或plot(logy=True)

使用格式:D.plot(logx=True)或者D.plot(logy=True)

D为pandas的DataFrame或者Series,这个函数表示对x轴或者y轴使用对数刻度(以10为底)。

具体的代码展示如下:

我遇到的问题:

不了解arrange()函数的用法

解决办法:

https://blog.csdn.net/qianwenhong/article/details/41414809?ops_request_misc=&request_id=&biz_id=102&utm_term=arrange%E5%87%BD%E6%95%B0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-41414809.142^v73^insert_down1,201^v4^add_ask,239^v2^insert_chatgpt&spm=1018.2226.3001.4187icon-default.png?t=N176https://blog.csdn.net/qianwenhong/article/details/41414809?ops_request_misc=&request_id=&biz_id=102&utm_term=arrange%E5%87%BD%E6%95%B0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-41414809.142^v73^insert_down1,201^v4^add_ask,239^v2^insert_chatgpt&spm=1018.2226.3001.4187代码如下:

我遇到的问题:

不了解subplot()函数的用法

解决办法:

matlab绘图 subplot函数使用方法_平平无奇的小女子~的博客-CSDN博客在平铺位置创建坐标轴语法subplot(m,n,p)subplot(m,n,p,‘replace’)subplot(m,n,p,‘align’)subplot(m,n,p,ax)subplot(‘Position’,pos)subplot(___,Name,Value)ax = subplot(___)subplot(ax)说明①subplot(m,n,p) 将当前图形划分为 m×n 网格,并在 p 指定的位置创建坐标轴。MATLAB® 按行号对子图位置进行编号。第一个子图是第一行的第https://blog.csdn.net/onlyfanlala/article/details/121706740?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167862455216800227451125%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167862455216800227451125&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-121706740-null-null.142^v73^insert_down1,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=subplot&spm=1018.2226.3001.4187

我遇到的问题:

不了解plot()函数中legend函数的用法

解决办法:

具体代码展现如下:

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
import numpy as np
import pandas as pdx = pd.Series(np.exp(np.arange(20)))  # 原始数据
plt.figure(figsize = (8, 9))  # 设置画布大小 
ax1 = plt.subplot(2, 1, 1)#subplot(m,n,p) 将当前图形划分为 m×n 网格,并在 p 指定的位置创建坐标轴。
#这里的数字不是坐标值的数字,而是描述起始点的相对位置。是在画布的这个位置开始描述函数,画函数曲线。
x.plot(label = '原始数据图', legend = True)#legend = True用于添加图例ax1 = plt.subplot(2, 1, 2)
x.plot(logy = True, label = '对数数据图', legend = True)#这里的logy是指对y进行log化
plt.show()

运行结果如下:

 6.plot(yerr=error)

使用格式为D.plot(yerr=error)。其中D为DataFrame或Series,yerr=error表示在y轴方向画出误差棒图,也可以设置为xerr=error,表示在x轴方向画出误差棒图。

举个例子:

# 代码3-21 绘制误差棒图import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
import numpy as np
import pandas as pderror = np.random.randn(10)  # 定义误差列
y = pd.Series(np.sin(np.arange(10)))  # 均值数据列
y.plot(yerr = error)  # 绘制误差图
plt.show()

具体的运行结果如下:

 

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

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

相关文章

chatgpt赋能python:Python读取Mat文件的完整教程

Python 读取Mat文件的完整教程 在数据科学领域,Matlab(或简称Mat)是最受欢迎的编程语言之一。Matlab可用于数学计算、数据预处理、建模和数据分析。然而,Matlab的开销和许可证成本会限制公司和个人的使用。因此,Pytho…

【原创】理解ChatGPT之Transformer工作原理

作者:黑夜路人 时间:2023年4月26日 想要连贯学习本内容请阅读之前文章: 【原创】理解ChatGPT之注意力机制和Transformer入门 【原创】理解ChatGPT之GPT工作原理 【原创】理解ChatGPT之机器学习入门 【原创】AIGC之 ChatGPT 高级使用技巧…

毕业论文:支持向量机在铝电解槽况分类中的应用

1、前言 机器学习在分类中已经非常成熟,受限于本人的专业能力与认知,所以本论文/课题是我在机器学习领域的初步探索,在关键的算法和代码部分其实我也一知半解,所以我重点讲述机器学习应用的过程,及探讨如何增强自己论文…

chatgpt赋能Python-pythonmeshgrid

Python中的Meshgrid 在Python中,我们经常需要对多维数据进行操作和分析。这时候就需要用到一个非常有用的函数——meshgrid。本文将从什么是meshgrid、怎样使用meshgrid、常见的应用场景等方面来介绍Python中的meshgrid函数。 什么是Meshgrid meshgrid是matlab中…

chatgpt赋能python:Python怎么可以接收MATLAB矩阵类型数据?

Python怎么可以接收MATLAB矩阵类型数据? 在数据科学领域中,MATLAB和Python都是非常流行的数据分析工具。然而,有时在不同的平台之间传输数据时,我们需要把MATLAB中的矩阵数据转换成Python可以接收的数据类型。 什么是MATLAB矩阵…

在Python中载入大量图片型数据集,与matlab结合使用时,如何解决RAM的占用爆炸性增长的问题

在Python中载入大量图片时,由于每张图片都会被转换成Numpy数组并存储在内存中,因此可能会导致RAM的占用爆炸性增长。为了减少RAM的使用,可以考虑采用以下方法: Python和Matlab结合使用。首先,可以使用Python的Pillow库…

chatgpt赋能Python-python_numel__

Python的numel函数:介绍和使用 在Python编程语言中,numel()是一个常用的函数。该函数的主要作用是返回数组或者列表中元素的个数。这个函数在编写程序时经常会用到,因此学会如何使用numel()函数将有助于您更好地掌握Python编程。 什么是num…

chatgpt赋能python:Python怎么跑MATLAB代码

Python怎么跑MATLAB代码 MATLAB是一种专门用于数学计算和科学工程的程序语言,而Python则是一门广泛应用于各种领域的高级编程语言。许多科学家和工程师使用MATLAB进行研究和开发,但是Python具有更广泛的应用性和更强大的社区支持。因此,编写…

LQR的理解与运用 第一期——理解篇

目录标题 0.本系列目的理解六个问题 运用一阶倒立摆matlabsimscape multibody实现 简单的轮足模型(二阶倒立摆) 1 理解LQR写在前面Q1:LQR控制的是什么Q2:LQR的适用场景与形式Q3:LQR的变量、输入、输出Q4:LQR的解决思路Q4.1 LQR控制器设计步骤&#xff1a…

【GPT4】微软 GPT-4 测试报告(5)与外界环境的交互能力

欢迎关注【youcans的AGI学习笔记】原创作品 微软 GPT-4 测试报告(1)总体介绍 微软 GPT-4 测试报告(2)多模态与跨学科能力 微软 GPT-4 测试报告(3)编程能力 微软 GPT-4 测试报告(4)数…

GPT-4 即将问世!不仅能搞文字,还支持视频

整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 作为当前全球最火的生成式 AI,ChatGPT 仅用了 3 个月,就几乎搅动了整个科技圈,人们不断惊叹于 ChatGPT 的强大——但微软和 OpenAI 想要的,显然不至于此…

文心一言 VS ChatGPT测评--多轮对话

上面的图,蓝色图表是文心一言;下面的图,绿色图标是chatGPT。 Round1 chatGPT还会抢答了。。。 Round2 chatGPT更有条理,1,2,3,4.。。。 Round3 文心一言的时效性更强一点,这回合算文心一言赢 Round4 还是chatGPT更有条…

多模态版ChatGPT,拿下视觉语言新SOTA, 代码已开源

点击上方“AI遇见机器学习”,选择“星标”公众号 重磅干货,第一时间送 文|羿阁 发自 凹非寺源|量子位 2022年流行“文生图”模型,那2023年流行什么? 机器学习工程师Daniel Bourke的答案是:反过来…

担心工作被AI取代?大模型再造一个“黄金时代”

文|光锥智能,作者|雷宇 随着人工智能在数据、算力、算法、工具、模型等方面的技术推进,AI已经实现由实验室到产业应用的层级跃升,更广范围、更深层次地影响着人们的经济发展与生产生活方式变革。 IDC数据显示&#xf…

从 Linus Torvalds 的成功中,我发现了这五个“残酷”真相

摘要:在每一位成功人士身上,我们总希望找出其与众不同之处,并以此来勉励自己。但事实证明,成功之路上还有许多我们忽略的残酷真相。 链接:https://medium.com/codex/5-harsh-truths-from-linus-torvalds-406ab20cea02 …

小米手机任意版本MIUI安装Google Play服务

声明:因年代久远,本文方法已失效。 2022-05-17:如有需要,可以试下直接下载安装gmail,因本人无测试环境,不保证可行 链接:https://share.weiyun.com/OknKLICv 打开小米应用商店 → 搜索“gmail…

小米商城项目

一、基本要求 1.1、小米商城PC Web 5-10个页面 功能:产品列表,注册,登录,产品详细,产品分类列表,瀑布流展示商品 数据使用ajax从服务器获得,技术不限(.Net,java,php,node.js,python.…

支付系统设计三:渠道网关设计02-客户端报文解析

文章目录 前言一、后台配置管理1.1 渠道配置1.1.1 渠道基本信息新增1.1.2 渠道交易类型配置1.1.3 渠道商户信息配置1.1.4 账户配置1.1.5 交易类型机构配置 1.2 渠道通讯配置1.2.1 内部渠道通讯1.2.1 外部渠道通讯 1.3 资源配置1.4 证书管理1.5 路由配置 二、运行时逻辑处理1. 控…

完美解决小爱同学蓝牙音箱(包括触屏版)连接电脑后找不到音频设备问题

前言: 最近入手了一台Redmi小爱同学触屏版8Pro,发现正常连接手机蓝牙是可以播放音乐的,但是连接电脑后虽然提示连接成功,但是不能播放音乐,在选择播放设备处没有显示该设备,如下图是正常的状态 (正常的样子…

小米互联网音箱首次促销 你买还是不买?

小米互联网音箱自去年底发布以来,凭借着时尚外观,海量内容,还有不俗音质创造了屡次售罄的佳绩。而近日,这款高性价比互联网音箱再度升级,可正式支持接入米家,从而实现更强大的远程控制功能。为了感谢广大消…