python主要探索函数
在数据分析中,Python的主要探索函数
- Python中主要用于书探索的是pandas(数据分析)和matplotlib(数据可视化).其中pandas提供了大量的数据探索的工具与数据相关的函数,这些数据探索可大致分为统计特征函数与统计作图函数,而作图函数依赖于mayplotlib,所以往往又会跟matplotlib结合在一起使用
- 基本统计特征的函数:统计特征用于计算数据的均值,方差,标准差,分位数,相关系数和协方差等,这些统计特征能反映出数据的整体分布
-
方法名函数功能所属库
corr() 计算样本数据的Spearman(Pearson)相关系数矩阵 pandas cov() 计算样本数据的协方差矩阵 pandas describe() 给出样本的基本描述(基本统计量入均值,标准差等) pandas kurt() 样本值的峰度(四阶矩) pandas mean() 计算数据样本的算数平均数 pandas skew() 样本值的偏离(三阶矩) pandas std() 计算样本数据的标准差 pandas sum() 计算数据样本的总和(按列计算) pandas var() 计算样本数据的方差 pandas - sum()
- 功能:计算数据样本的总和(按列计算)
- 使用格式: D.sum() 按列计算样本D的总和,样本D可为DataFrame或者Series
- mean()
- 功能:计算数据样本的算数平均数
- 使用格式: D.mean()按列计算样本D的均值,样本D可为DataFrame或者Series
- var()
- 功能:计算样本数据的方差
- 使用格式: D.var(),按列计算样本D的均值,样本D可为DataFrame后者Series
- std()
- 功能:计算样本数据的标准差
- 使用格式:D.std() 按列计算样本D的均值,样本D可为ataFrame或者Series
- corr()
- 功能:计算样本数据的Spearman(Pearson)相关西湖矩阵
- 使用格式: D.corr(method="pearson"), 样本D可为DataFrame,返回相关系数矩阵,method参数为计算方法,支持pearson系数.kendalll系数,spearman系数
- S1.corr(S2,method="pearson") S1,S2均为Series,这种格式指定计算两个Series之间的相关系数
- cov()
- 功能:计算样本数据的协防方差矩阵
- 使用格式: D.cov()样本D可为DataFrame,返回协方差矩阵
- skew/kurt
- 功能:计算数据样本的偏度(三阶矩)/峰度(四阶矩)
- 使用格式 D.skew()/D.kurt() 计算样本D的偏度(三阶矩)/峰度(四阶矩).样本D可为DataFrame或Series
- describe()
- 功能:直接给出样本数据的一些基本的统计量,包括均值,标准差,最大值,最小值,分位数等.
- 使用格式: D.describe(),括号里可以带一些参数,比如percentiles = [0.2, 0.4, 0.6, 0.8].就是指定只计算0.2,0.4,0.6,0.8分位数,而不是默认的1/4, 1/2, 3/4分位数
拓展统计特征函数
- 除了上述的统计特征外,pandas还提供了一些非常方便的计算特征的函数,主要又累计计算(cum)和滚动计算(pd.rolling)
-
方法名函数功能所属库
cummax() 依次给出前1,2,3,..,个数的最大值. pandas cummin() 依次给出前1,2,3,...,个数的最小值 pandas cumprod() 依次给出1,2,3,...,n个数的积 pandas cumsum() 依次给出前1,2,3...,n个数的和 pandas - pandas累积统计特征函数
-
方法名函数功能所属库
rolling_sum() 计算数据样本的总和(按列计算) pandas rolling_mean() 数据样本的算术平均数 pandas rolling_var() 计算样本的方差 pandas rolling_std() 计算样本的标准差 pandas rolling_corr() 计算样本的Spearman(Pearson) pandas rolling_cov() 计算数据样本的协方差矩阵 pandas rolling_skew() 样本的偏度(三阶矩) pandas rolling_kurt() 样本值的峰度(四阶矩) pandas
统计作图函数
- 通过统计作图函数绘制的图表可以直观地反映出数据及统计量的性质机器内在的规律,如盒图恶意表示多个样本的均值.误差条形图能同时显示下限和上限误差,最小二乘拟合曲线图能分析两变量间的关系.
- Python主要统计作图函数
-
作图函数名作图函数功能所属工具箱
boxplot() 绘制样本数据的箱型图 Pandas hist() 绘制二维条形直方图,可显示数据的分配情况 Matplotlib/Pandas pie() 绘制饼型图 Matplotlib/Pandas plot() 绘制线性二维图,折线图 Matplotlib/Pandas plot(logy=True) 绘制y轴的对数图形 Pandas plot(yerr=error) 绘制误差条形图 Pandas - plot
- 功能:绘制线性二维图
- 使用格式: plt.plot(x,y,S)
- 这是Matplotlib通用的绘图方式,绘制y对于x(即以x为横轴的二维图形),字符串参量S指定绘制时图形的类型,样式和颜色,常用的选型有:"b"为蓝色,"r"为红色,"g"为绿色,"o"为圆圈,"+"为加号标记,"-"为实线,"–"为虚线,当x,y均为实数同维向量时,则描出点(x(i),y(i)),然后用直线依次相连
- D.plot(kind='box')
- 这里使用的是DataFrame或Series对象内置的方法作图,默认以Index为横坐标,没列数据为纵坐标自动作图,通过kind参数指定作图类型支持line(线)和area,pie(饼图)等,同时也能够接受plt.plot()中接受的参数.
- pie
- 功能:绘制饼型图
import matplotlib.pyplot as plt import numpy as np x = np.random.randn(1000) # 1000个服从正太分布的随机数 plt.hist(x, 10) # 分成10组进行绘制直方图 plt.show()
- 使用格式: plt.pie(size),使用matplotlib绘制饼图,其中size是一个列表,记录各个扇形的比例
- 功能:绘制饼型图
- hist
- 功能:绘制二维条形直方图,可显示数据分布情形
- 使用格式: Plt.hist(x,y),其中,x是待绘制的直方图的一维数组,也可以是整数,表示均匀分为n组;也可以是列表,列表各个数字为分组的边界点(即手动指定分界点)
- boxplot
- 功能:绘制样本数据的箱型图
- 使用格式: D.boxplot()/D.plot(kind="box"),有两种比较简单的方式绘制D的箱型图,其中一种是直接调用DataFrame的boxplot()方法;另外一种是调用Series或者DataFrame的plot()方法,并用kind参数指定箱型图.其中,盒子的上,下四分位数和中值处于一条线段,箱型图末端延伸出去的直线成为须,表示盒外数据的长度.如果在须外没有数据,则在须的底部有一点,点的颜色相同.
-
import matplotlib.pyplot as plt import numpy as np import pandas as pd import random x = np.random.randn(1000) # 1000个服从正太分布 D = pd.DataFrame([x, x+1]).T # 构造两列的DataFrame D.plot(kind="box") # 调用Series内置的作图方法画图,用kind参数指定箱型图box plt.show()
- plot(logx = True)/plot(logy = True)
- 功能:绘制x或y轴对的对数图形
- 使用格式: D.plot(logx = True) / D.plot(logy = True), 对x轴(y轴)使用对数刻度(以10为底),y轴(x轴)使用线性刻度,进行plot函数绘图,D为pandas的DataFrame或者Series
-
import numpy as np import pandas as pd import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 x = pd.Series(np.exp(np.arange(20))) # 原始数据 x.plot(label= u"原始数据图", legend=True) plt.show() x.plot(logy=True, label=u"对数数据图", legend=True) plt.show()
- plot(yerr= error)
- 功能:绘制误差条形图
- 使用格式: D.plot(yerr=error),绘制误差条形图,D为pandas的DataFrame或Series,代表着均值数据句列,而error则是误差列,次命令在y轴方向画出误差棒图,如果设置参数xerr=error,则在x轴方向画出误差棒图
-
import matplotlib.pyplot as plt import numpy as np import pandas as pd plt.rcParams["font.sans-serif"] = ["SimHei"] # 用来正常显示中文标签 plt.rcParams["axes.unicode_minus"] = False # 用来正常显示负号 error = np.random.randn(10) # 定义误差列 y = pd.Series(np.sin(np.arange(10))) # 均值数据列 y.plot(yerr=error) # 绘制误差图 plt.show()