Python主要数据探索函数

您所在的位置:网站首页 subplot函数怎么用python Python主要数据探索函数

Python主要数据探索函数

#Python主要数据探索函数| 来源: 网络整理| 查看: 265

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 pd x = 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 pd error = np.random.randn(10) # 定义误差列 y = pd.Series(np.sin(np.arange(10))) # 均值数据列 y.plot(yerr = error) # 绘制误差图 plt.show()

具体的运行结果如下:

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3