Python主要数据探索函数 |
您所在的位置:网站首页 › subplot函数怎么用python › 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图的组成: 表示对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=False 具体的代码展示如下: 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()运行结果如下: 使用格式: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()运行结果如下: 使用方法: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()运行结果如下: 使用格式: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.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® 按行号对子图位置进行编号。第一个子图是第一行的第 我遇到的问题: 不了解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()运行结果如下: 使用格式为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 |