python主要数据探索函数

Python中用于数据探索的库主要是

  • Pandas(数据分析)统计分析函数 统计作图函数
  • Matplotlib(数据可视化)

基本统计特征函数

  • sum按列计算样本总和
  • mean计算样本的算数平均数
  • var样本的方差
  • std标准差
  • corr 计算spearman(Person)相关系数矩阵
  • cov协方差矩阵
  • skew样本偏值(三阶矩阵)
  • kurt样本峰度(四阶矩阵)
  • describe样本的基本描述(均值 标准差)

corr

#计算两个列向量的相关系数,采用Spearman方法
#生成样本D,一行为1~7 ,一行为2~8
D = pd.DataFrame([rang(1,8)],[range(2,9)])
#计算相关系数矩阵
D.corr(method = 'spearson')
#提取第一行
s1 = D.loc[0]
#提取第二行
s2 = D.loc[1]
#计算S1 S2的相关系数
s1.corr(s2,method='pearson')

cov

#计算数据样本的协方差矩阵
import numpy as np
import pandas as pd
#产生6×5的随机矩阵
D = pd.DataFrame(np.random.randn(6,5))
print(D)
#计算协方差矩阵
print(D.cov)
          0         1         2         3         4
0  1.237153 -0.046697  0.376607 -0.127719  0.723038
1 -0.046697  1.186785  0.254628  0.929739  0.915108
2  0.376607  0.254628  0.795005 -0.192494  0.980395
3 -0.127719  0.929739 -0.192494  1.229316  0.128544
4  0.723038  0.915108  0.980395  0.128544  1.830946

Process finished with exit code 0

skew/kurt

#计算6×5随机矩阵的偏度(三阶矩)/峰度(四阶矩)
import pandas as pd
import numpy as np

D = pd.DataForame(np.random.randn(6,5))
print(D.kurt())
print(D.skew())
0    1.450550
1   -0.366297
2   -0.275504
3   -0.513684
4    1.114285
dtype: float64
0    3.017489
1   -0.343322
2    2.042636
3    0.920795
4   -0.157373
dtype: float64

descirbute

#6*5随机的descirbute
import numpy as np
import pandas as pd

D = pd.DataFrame(np.random.randn(6,5))
print(D.describe())
              0         1         2         3         4
count  6.000000  6.000000  6.000000  6.000000  6.000000
mean   0.234195  0.054628 -0.210326  0.686747  0.045748
std    1.110422  0.810948  0.699316  0.858312  1.024418
min   -0.943104 -0.995776 -1.171483 -0.306042 -0.961652
25%   -0.422272 -0.386177 -0.349850  0.254772 -0.603531
50%   -0.130463 -0.138085 -0.324408  0.445415 -0.378101
75%    0.755010  0.673340 -0.141632  1.027609  0.703376
max    2.078576  1.124775  0.997379  2.122794  1.607149

拓展统计特征函数

除了以上之外,pandas还提供了一些非常方便实用的计算统计特征函数,主要有:

  • 累积计算(cum)
cum系列函数作为DataFrame或Series对象的方法而出现的,D.cumsum()
  • 滚动计算(pd.rolling_)
rolling_是pandas的函数,不是DataFrame或Series的对象方法。
pd.rolling_mean(D,k):每k列计算一次均值,滚动计算。

绘制作图函数
在作图前,需要加载以下代码

#导入图像库
import matplotlib.pyplot as plt
#正常显示中文标签
plt.rcParams['font.sans-serif'] = ['simHei']
#用来正常显示负号
plt.rcParams['axes.unicode_minus'] = False
#创建图像区域,指定比例
plt.figure(figsize = (7,5))

plot

  • Matplotlib通用绘图方式
plt.plot(x,y,S)
S指定绘图时图形的类型,样式和颜色
bbule r:red g:green o:圆圈 +:加号标记 -:实线 --:虚线
  • DataFrame或Series对象内置的方法作图
默认index为横坐标,数据为纵坐标
kind参数指定作图类型 line(线)bar(条形)barh、hist(直方图)
box(箱形图) kde(密度图) area、pie(饼状图)
#在0-2π绘制蓝色正弦虚线,每个坐标点上标上五角星
import numpy as np
import matplotlib.pyplot as plt
#x坐标输入
x = np.linspace(0,2*np.pi,50)
y = np.sin(x)
#绘制图形格式为蓝色带星虚线,显示正弦曲线
plt.plot(x,y,'bp--')
plt.show()

这里写图片描述
pie
绘制饼状图
plt.pie(size)

#通过向量[15,30,45,10]画饼,并且注释,第二部分分离
import matplotlib.pyplot as plt
#定义标签
labels = 'A','B','C','D'
sizes = [15,30,45,10]#每一块的比例

colors = ['yellowgreen','gold','lightskyblue','lightcoral']
#突出显示
explode = (0,0.1,0,0)

plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',shadow=True,startangle=90)
plt.axis('equal')#显示为园,防止出现椭圆
plt.show()

这里写图片描述
hist
Plt.hist(x,y)
x为待绘制一维数组,y可以为整数:均匀分为n组;也可以是列表,列表的各个数字为分组的边界点

import matplotlib.pyplot as plt
import numpy as np

#1000个服从正态分布的随机数
x = np.random.randn(1000)
#分成十组进行绘制
plt.hist(x,10)
plt.show()

这里写图片描述

boxplot
箱形图
D.boxplot()/D.plot(kind = ‘box’)

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
#1000个服从正太分布的随机数
x = np.random.randn(1000)
#构造两列DataFrame
D = pd.DataFrame([x,x+1]).T
#调用serises内置的作图方法画图,用kind参数指定象形图box
D.plot(kind='box')
plt.show()

这里写图片描述

plot(logx=True)/D.plot(logy=True)
绘制x或者y轴的对数图形,对x,y轴使用对数刻度(10为底),x y 轴使用线性刻度,进行plot函数绘图,D为pandas的DataFrame或Series

# -- coding: gbk --
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)))
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则是误差列,(yerr=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()

这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_39381833/article/details/80795672