《python数据分析与挖掘实战》笔记第3章

article/2025/8/15 4:18:01

文章目录

    • 第3章:数据探索
      • 3.1、数据质量分析
      • 3.2、数据特征分析
        • 3.2.1、分布分析
        • 3.2.2、对比分析
        • 3.2.3、统计量分析
          • 1.集中趋势度量
          • 2.离中趋势度量
        • 3.2.4、周期性分析
        • 3.2.5、贡献度分析
        • 3.2.6、相关性分析
          • 1. 直接绘制散点图
          • 2. 绘制散点图矩阵
          • 3. 计算相关系数
      • 3.3、python主要数据探索函数
        • 3.3.1、基本统计特征函数
          • corr()
          • cov()
          • skew/kurt
        • 3.3.2、拓展统计特征函数
        • 3.3.3、统计作图函数
          • (1) plot
          • (2) pie
          • (3) hist
          • (4) boxplot
          • (5) plot(logx = True) / plot(logy = True)
          • (6)plot(yerr = error)
      • 3.4、小结

第3章:数据探索

根据观测、调查收集到初步的样本数据集后,接下来要考虑的问题是:

  • 样本数据集的数量和质量是否满足模型构建的要求?
  • 是否出现从未设想过的数据状态?
  • 其中有没有什么明显的规律和趋势?
  • 各因素之间有什么样的关联性?

3.1、数据质量分析

数据质量分析是数据挖掘中数据准备过程的重要一环,是数据预处理的前提,也是数据挖掘分析结论有效性和准确性的基础,没有可信的数据,数据挖掘构建的模型将是空中楼阁。

数据质量分析的主要任务是检查原始数据中是否存在脏数据,脏数据一般是指不符合要求,以及不能直接进行相应分析的数据。

在常见的数据挖掘工作中,脏数据包括如下内容:

  • 缺失值
  • 异常值
  • 不一致的值
  • 重复数据及含有特殊符号(如#、¥、*)的数据

缺失值的处理分为删除存在缺失值的记录、对可能值进行插补和不处理。

异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称为离群点,异常值的分析也称为离群点的分析。

代码清单3-1,餐饮销售额数据异常值检测代码

#-*- coding: utf-8 -*-
import pandas as pdcatering_sale = '../data/catering_sale.xls' #餐饮数据
data = pd.read_excel(catering_sale, index_col = u'日期') #读取数据,指定“日期”列为索引列print(data.describe()) # 查看数据的基本情况import matplotlib.pyplot as plt #导入图像库plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号plt.figure() #建立图像
p = data.boxplot(return_type='dict') #画箱线图,直接使用DataFrame的方法
x = p['fliers'][0].get_xdata() # 'flies'即为异常值的标签
y = p['fliers'][0].get_ydata()
y.sort() #从小到大排序,该方法直接改变原对象#用annotate添加注释
#其中有些相近的点,注解会出现重叠,难以看清,需要一些技巧来控制。
#以下参数都是经过调试的,需要具体问题具体调试。
for i in range(len(x)): if i>0:plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.05 -0.8/(y[i]-y[i-1]),y[i]))else:plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.08,y[i]))plt.show() #展示箱线图

describe()函数可以查看数据的基本情况

                销量
count   200.000000
mean   2755.214700
std     751.029772
min      22.000000
25%    2451.975000
50%    2655.850000
75%    3026.125000
max    9106.440000

其中count是非空值数,通过len(data)可以知道数据的记录为201条,因此缺失值数为1。另外提供的基本参数还有平均值(mean)、标准差(std)、最小值(min)、最大值(max)以及1/4、1/2、3/4分位数(25%、50%、75%)。

  • 异常值检测箱型图
    异常值检测箱型图

  • 一致性分析
    数据不一致性是指数据的矛盾性、不相容性。直接对不一致的数据进行挖掘,可能会产生与实际相违背的挖掘结果。

3.2、数据特征分析

3.2.1、分布分析

分布分析能揭示数据的分布特征和分布类型。对于定量数据,欲了解其分布形式是对称的还是非对称的,发现某些特大或特小的可疑值,可通过绘制频率分布表、绘制频率分布直方 图、绘制茎叶图进行直观地分析;对于定性分类数据,可用饼图和条形图直观地显示分布情况。

  1. 定量数据的分布分析

对于定量变量而言,选择“组数”和“组宽”是做频率分布分析时最主要的问题,一般 按照以下步骤进行。

1)求极差。
2)决定组距与组数。
3)决定分点。
4)列出频率分布表。
5)绘制频率分布直方图。

遵循的主要原则如下。
1) 各组之间必须是相互排斥的。
2) 各组必须将所有的数据包含在内。
3) 各组的组宽最好相等。

  1. 定性数据的分布分析

对于定性变量,常常根据变量的分类类型来分组,可以釆用饼图和条形图来描述定性变量的分布。

3.2.2、对比分析

对比分析是指把两个相互联系的指标进行比较,从数量上展示和说明研究对象规模的大 小,水平的高低,速度的快慢,以及各种关系是否协调。特别适用于指标间的横纵向比较、 时间序列的比较分析。在对比分析中,选择合适的对比标准是十分关键的步骤,只有选择合 适,才能做出客观的评价,选择不合适,评价可能得出错误的结论。

对比分析主要有以下两种形式。

(1)绝对数比较
绝对数比较是利用绝对数进行对比,从而寻找差异的一种方法。

(2) 相对数比较
相对数比较是由两个有联系的指标对比计算的,用以反映客观现象之间数量联系程度 的综合指标,其数值表现为相对数。由于研究目的和对比基础不同,相对数可以分为以下 几种。

1) 结构相对数:将同一总体内的部分数值与全部数值对比求得比重,用以说明事物的 性质、结构或质量。如居民食品支出额占消费支出总额比重、产品合格率等。
2) 比例相对数:将同一总体内不同部分的数值进行对比,表明总体内各部分的比例关 系。如人口性别比例、投资与消费比例等。
3) 比较相对数:将同一时期两个性质相同的指标数值进行对比,说明同类现象在不同 空间条件下的数量对比关系。如不同地区商品价格对比,不同行业、不同企业间某项指标对 比等。
4) 强度相对数:将两个性质不同但有一定联系的总量指标进行对比,用以说明现象的 强度、密度和普遍程度。如人均国内生产总值用“元/人”表示,人口密度用“人/平方公 里”表示,也有用百分数或千分数表示的,如人口出生率用%。表示。
5) 计划完成程度相对数:是某一时期实际完成数与计划数的对比,用以说明计划完成 程度。
6) 动态相对数:将同一现象在不同时期的指标数值进行对比,用以说明发展方向和变 化的速度。如发展速度、增长速度等。

3.2.3、统计量分析

用统计指标对定量数据进行统计描述,常从集中趋势和离中趋势两个方面进行分析。

平均水平的指标是对个体集中趋势的度量,使用最广泛的是均值和中位数;
反映变异程度的指标则是对个体离开平均水平的度量,使用较广泛的是标准差(方差)、四分位间距。

1.集中趋势度量

(1)均值
均值是所有数据的平均值。

作为一个统计量,均值的主要问题是对极端值很敏感。如果数据中存在极端值或者数据 是偏态分布的,那么均值就不能很好地度量数据的集中趋势。为了消除少数极端值的影响, 可以使用截断均值或者中位数来度量数据的集中趋势。截断均值是去掉高、低极端值之后的平均数。

(2)中位数
中位数是将一组观察值按从小到大的顺序排列,位于中间的那个数。即在全部数据中, 小于和大于中位数的数据个数相等。

⑶众数
众数是指数据集中出现最频繁的值。众数并不经常用来度量定性变量的中心位置,更适 用于定性变量。众数不具有唯一性。当然,众数一般用于离散型变量而非连续型变量。

2.离中趋势度量

(1)极差
极差=最大值一最小值

极差对数据集的极端值非常敏感,并且忽略了位于最大值与最小值之间的数据的分布 情况。

(2)标准差
标准差度量数据偏离均值的程度

(3) 变异系数
变异系数度量标准差相对于均值的离中趋势

变异系数主要用来比较两个或多个具有不同单位或不同波动幅度的数据集的离中趋势。

(4 )四分位数间距
四分位数包括上四分位数和下四分位数。将所有数值由小到大排列并分成四等份,处于 第一个分割点位置的数值是下四分位数,处于第二个分割点位置(中间位置)的数值是中位 数,处于第三个分割点位置的数值是上四分位数。

四分位数间距,是上四分位数QU,与下四分位数QL之差,其间包含了全部观察值的一 半。其值越大,说明数据的变异程度越大;反之,说明变异程度越小。

代码清单3-2,餐饮销量数据统计量分析代码

#-*- coding: utf-8 -*-
#餐饮销量数据统计量分析
from __future__ import print_function
import pandas as pdcatering_sale = '../data/catering_sale.xls' #餐饮数据
data = pd.read_excel(catering_sale, index_col = u'日期') #读取数据,指定“日期”列为索引列
data = data[(data[u'销量'] > 400)&(data[u'销量'] < 5000)] #过滤异常数据
statistics = data.describe() #保存基本统计量statistics.loc['range'] = statistics.loc['max']-statistics.loc['min'] #极差
statistics.loc['var'] = statistics.loc['std']/statistics.loc['mean'] #变异系数
statistics.loc['dis'] = statistics.loc['75%']-statistics.loc['25%'] #四分位数间距print(statistics)

结果

                销量
count   195.000000
mean   2744.595385
std     424.739407
min     865.000000
25%    2460.600000
50%    2655.900000
75%    3023.200000
max    4065.200000
range  3200.200000
var       0.154755
dis     562.600000

3.2.4、周期性分析

周期性分析是探索某个变量是否随着时间变化而呈现出某种周期变化趋势。时间尺度相对较长的周期性趋势有年度周期性趋势、季节性周期趋势,相对较短的有月度周期性趋势、 周度周期性趋势,甚至更短的天、小时周期性趋势。

3.2.5、贡献度分析

贡献度分析又称帕累托分析,它的原理是帕累托法则,又称20/80定律。同样的投入放 在不同的地方会产生不同的效益。例如,对一个公司来讲,80%的利润常常来自于20%最畅 销的产品,而其他80%的产品只产生了 20%的利润。

代码清单3-3,菜品盈利帕累托图代码

#-*- coding: utf-8 -*-
#菜品盈利数据 帕累托图
from __future__ import print_function
import pandas as pd#初始化参数
dish_profit = '../data/catering_dish_profit.xls' #餐饮菜品盈利数据
data = pd.read_excel(dish_profit, index_col = u'菜品名')
data = data[u'盈利'].copy()
data.sort_index(ascending = False)import matplotlib.pyplot as plt #导入图像库
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号plt.figure()
data.plot(kind='bar')
plt.ylabel(u'盈利(元)')
p = 1.0*data.cumsum()/data.sum()
p.plot(color = 'r', secondary_y = True, style = '-o',linewidth = 2)
plt.annotate(format(p[6], '.4%'), xy = (6, p[6]), xytext=(6*0.9, p[6]*0.9), arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2")) #添加注释,即85%处的标记。这里包括了指定箭头样式。
plt.ylabel(u'盈利(比例)')
plt.show()
  • 效果图
    效果图

3.2.6、相关性分析

分析连续变量之间线性相关程度的强弱,并用适当的统计指标表示出来的过程称为相关分析

1. 直接绘制散点图

判断两个变量是否具有线性相关关系的最直观的方法是直接绘制散点图,如图3-11所示。
3-11

2. 绘制散点图矩阵

需要同时考察多个变量间的相关关系时,一一绘制它们间的简单散点图是十分麻烦的。 此时可利用散点图矩阵同时绘制各变量间的散点图,从而快速发现多个变量间的主要相关 性,这在进行多元线性回归时显得尤为重要。

散点图矩阵如图3-12所示。

3-12

3. 计算相关系数

为了更加准确地描述变量之间的线性相关程度,可以通过计算相关系数来进行相关分析。在二元变量的相关分析过程中比较常用的有Pearson相关系数、Spearman秩相关系数和判定系数。

(1 ) Pearson相关系数

一般用于分析两个连续性变量之间的关系,其计算公式如下。
image.png

(2 ) Spearman秩相关系数
Pearson线性相关系数要求连续变量的取值服从正态分布。不服从正态分布的变量、分类或等级变量之间的关联性可采用Spearman秩相关系数,也称等级相关系数来描述。

因为一个变量的相同的取值必须有相同的秩次,所以在计算中采用的秩次是排序后所在位置的平均值。

只要两个变量具有严格单调的函数关系,那么它们就是完全Spearman相关的,这与Pearson 相关不同,Pearson相关只有在变量具有线性关系时才是完全相关的。

(3 )判定系数
判定系数是相关系数的平方,用r的平方表示;用来衡量回归方程对y的解释程度。判定系数取值范围:0=<r的平方<=1。r的平方越接近于1,表明x与y之间的相关性越强;r的平方越接近于0,表明两个变量之间几乎没有直线相关关系。

代码清单3-4,餐饮销量数据相关性分析

#-*- coding: utf-8 -*-
#餐饮销量数据相关性分析
from __future__ import print_function
import pandas as pdcatering_sale = '../data/catering_sale_all.xls' #餐饮数据,含有其他属性
data = pd.read_excel(catering_sale, index_col = u'日期') #读取数据,指定“日期”列为索引列data.corr() #相关系数矩阵,即给出了任意两款菜式之间的相关系数
result1=data.corr()[u'百合酱蒸凤爪'] #只显示“百合酱蒸凤爪”与其他菜式的相关系数
print(result1)
print('-'*50)
result2=data[u'百合酱蒸凤爪'].corr(data[u'翡翠蒸香茜饺']) #计算“百合酱蒸凤爪”与“翡翠蒸香茜饺”的相关系数
print(result2)
  • 结果
百合酱蒸凤爪     1.000000
翡翠蒸香茜饺     0.009206
金银蒜汁蒸排骨    0.016799
乐膳真味鸡      0.455638
蜜汁焗餐包      0.098085
生炒菜心       0.308496
铁板酸菜豆腐     0.204898
香煎韭菜饺      0.127448
香煎罗卜糕     -0.090276
原汁原味菜心     0.428316
Name: 百合酱蒸凤爪, dtype: float64
--------------------------------------------------
0.009205803051836475

3.3、python主要数据探索函数

Python中用于数据探索的库主要是Pandas (数据分析)和Matplotlib (数据可视化)。其 中,Pandas提供了大量的与数据探索相关的函数,这些数据探索函数可大致分为统计特征函数与统计作图函数,而作图函数依赖于Matplotlib,所以往往又会跟Matplotlib结合在一起使用。

3.3.1、基本统计特征函数

统计特征函数用于计算数据的均值、方差、标准差、分位数、相关系数和协方差等,这些统计特征能反映出数据的整体分布。本小节所介绍的统计特征函数如表3-8所示,它们主要作为Pandas的对象DataFrame或Series的方法岀现。

  • 表3-8 Pandas主要统计特征函数
方法名函数功能所属库
sum()计算数据样本的总和(按列计算)Pandas
mean()计算数据样本的算术平均数Pandas
var()计算数据样本的方差Pandas
std()计算数据样本的标准差Pandas
corr()计算数据样本的Spearman (Pearson)相关系数矩阵Pandas
cov()计算数据样本的协方差矩阵Pandas
skew()样本值的偏度(三阶矩)Pandas
kurt()样本值的峰度(四阶矩)Pandas
describe()给出样本的基本描述(基本统计量如均值、标准差等)Pandas
corr()

功能:计算数据样本的Spearman (Pearson)相关系数矩阵。
使用格式:D.corr(method-pearson')

样本D可为DataFrame,返回相关系数矩阵,method参数为计算方法,支持pearson (皮尔森相关系数,默认选项)、kendall (肯德尔系数)、spearman (斯皮尔曼系数);

Sl.corr(S2, method-pearson'), SI、S2 均为 Series,这种格式指定计算两个 Series 之间的相关系数。

实例:计算两个列向量的相关系数,釆用Spearman方法。

代码清单3-5,计算两个列向量的相关系数

# -*- coding:utf-8 -*-
# 釆用Spearman方法计算两个列向量的相关系数
import pandas as pdD = pd.DataFrame ([range (1, 8) , range (2, 9) ] ) #生成样本D, —行为 1~7, —行为2~8
D.corr (method= 'pearson') #计算相关系数矩阵
S1 = D.loc[0] # 提取第一行
S2 = D.loc[1] # 提取第二行
result=S1.corr (S2, method= 'pearson') #计算SI、S2的相关系数
print(result)
cov()

功能:计算数据样本的协方差矩阵。
使用格式:D.cov()

样本D可为DataFrame,返回协方差矩阵;
Sl.cov(S2), SI、S2均为Series,这种格式指定计算两个Series之间的协方差。

实例:计算6x5随机矩阵的协方差矩阵。

代码清单3-6,计算6x5随机矩阵的协方差矩阵

# -*- coding:utf-8 -*-
# 计算6x5随机矩阵的协方差矩阵
import pandas as pd
import numpy as npD = pd.DataFrame (np.random.randn(6, 5)) #产生6X5随机矩阵
D.cov() #计算协方差矩阵
result=D[0].cov(D[1]) #计算第一列和第二列的协方差
print(result)
skew/kurt

功能:计算数据样本的偏度(三阶矩)/峰度(四阶矩)。
使用格式:D.skew() / D.kurt()

计算样本D的偏度(三阶矩)/峰度(四阶矩)。样本D可为DataFrame或Series。

实例:计算6x5随机矩阵的偏度(三阶矩)/峰度(四阶矩)。

代码清单3-7,计算6x5随机矩阵的偏度(三阶矩)/峰度(四阶矩)

# -*- coding:utf-8 -*-
# 计算6x5随机矩阵的偏度(三阶矩)/峰度(四阶矩)
import pandas as pd
import numpy as npD = pd.DataFrame (np.random.randn(6,5)) #产生6x5随机矩阵
result1=D.skew()
print(result1)
print('-'*50)
result2=D.kurt()
print(result2)
  • 结果
0   -0.108415
1   -0.607820
2    0.280084
3    2.217468
4   -0.629157
dtype: float64
--------------------------------------------------
0   -0.084542
1   -1.142215
2    0.906740
3    5.187245
4    0.397617
dtype: float64

3.3.2、拓展统计特征函数

除了上述基本的统计特征外,Pandas还提供了一些非常方便实用的计算统计特征的函数, 主要有累积计算(cum)和滚动计算(pd.rolling_),见表3-8和表3-9。

表3-9 Pandas累积统计特征函数

方法名函数功能所属库
cumsum()依次给出前1、2、…、n个数的和Pandas
cumprod()依次给出前1、2、…、n个数的积Pandas
cummax()依次给出前1、2、…、n个数的最大值Pandas
cummin()依次给出前1、2、…、n个数的最小值Pandas

表3-10 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

其中,cum系列函数是作为DataFrame或’Series对象的方法而出现的,因此命令格式为 D.cumsum(),而rolling_系列是pandas的函数,不是DataFrame或Series对象的方法,因此,它们的使用格式为pd.rolling_mean(D, k),意思是每k列计算一次均值,滚动计算。

实例:

D=pd.Series (range (0, 20) ) #构造Series,内容为0~19共20个整数 
D.cumsum () #给出前n项和pd.rolling_sum(D, 2) #依次对相邻两项求和

3.3.3、统计作图函数

通过统计作图函数绘制的图表可以直观地反映出数据及统计量的性质及其内在规律,如 盒图可以表示多个样本的均值,误差条形图能同时显示下限误差和上限误差,最小二乘拟合曲线图能分析两变量间的关系。
表3-11 Python主要统计作图函数

作图函数名作图函数功能所属工具箱
plot()绘制线性二维图,折线图Matplotlib/Pandas
pie()绘制饼型图Matplotlib/Pandas
hist()绘制二维条形直方图,可显示数据的分配情形Matplotlib/Pandas
boxplot()绘制样本数据的箱形图Pandas
plot(logy = True)绘制y轴的对数图形Pandas
plot(yen = error)绘制误差条形图Pandas

在作图之前,通常要加载以下代码。

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

作图完成后,一般通过plt.show()来显示作图结果。

(1) plot

功能:绘制线性二维图、折线图。
使用格式:

  • plt.plot(x, y, S)

这是Matplotlib通用的绘图方式,绘制对于x (即以x为横轴的二维图形),字符串参量S指定绘制时图形的类型、样式和颜色,常用的选项有:'b’为蓝色、'r’为红色、'g’为绿色、‘o’为圆圈、’+‘为加号标记、’-‘为实线、’–'为虚线。当x、y均为实数同维向量时, 则描出点(x(i),y(f)),然后用直线依次相连。

  • D.plot(kind = ‘box’)

这里使用的是DataFrame或Series对象内置的方法作图,默认以Index为横坐标,每列数据为纵坐标自动作图,通过kind参数指定作图类型,支持line(线)、bar(条形)、barh、hist(直方图)、box (箱线图)、kde (密度图)和area、pie (饼图)等,同时也能够接受plt.plot()中接受的参数。因此,如果数据已经被加载为Pandas中的对象,那么以这种方式作图是比较简 洁的。

实例:在区间(0=<x<=2π)绘制一条蓝色的正弦虚线,并在每个坐标点标上五角星。

代码清单3-8,绘制一条蓝色的正弦虚线

# -*- coding:utf-8 -*-
# 在区间(0=<x<=2π)绘制一条蓝色的正弦虚线,并在每个坐标点标上五角星
import numpy as np
import matplotlib.pyplot as plt #导入作图库plt.rcParams ['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams ['axes.unicode_minus' ] = False #用来正常显示负号
plt.figure(figsize = (7, 5)) #创建图像区域,指定比例x = np.linspace(0,2*np.pi, 50) #x坐标输入
y = np.sin(x) #计算对应x的正弦值
plt.plot (x, y,'bp--') #控制图形格式为蓝色带星虚线,,显示正弦曲线
plt.show()

绘制图形如图3-13所示。
3-13

(2) pie

功能:绘制饼型图。
使用格式:plt.pie(size)
使用Matplotlib绘制饼图,其中size是一个列表,记录各个扇形的比例。pie有丰富的参 数,详情请参考下面的实例。

实例:通过向量[15,30,45,10]画饼图,注上标签,并将第2部分分离出来。绘制结果

代码清单3-9,画饼图

# -*- coding:utf-8 -*-
# 通过向量[15,30,45,10]画饼图,注上标签,并将第2部分分离出来。
import matplotlib.pyplot as pit# 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')
pit.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%',shadow=True, startangle=90)
pit.axis ('equal') #显示为圆(避免比例压缩为椭圆)
pit.show()

3-9

(3) hist

功能:绘制二维条形直方图,可显示数据的分布情形。 
使用格式:Plt.hist(x, y)
其中,x是待绘制直方图的一维数组,y可以是整数,表示均匀分为n组;也可以是列表, 列表各个数字为分组的边界点(即手动指定分界点)。

实例:绘制二维条形直方图,随机生成有1000个元素的服从正态分布的数组,分成10组绘制直方图。绘制结果如图3-15所示。

代码清单3-10,二维条形直方图

# -*- coding:utf-8 -*-
import matplotlib.pyplot as plt
import numpy as npx = np.random.randn(1000) #1000个服从正态分布的随机数
plt.hist (x, 10) #分成10组进行绘制直方图
plt.show()

3-15

(4) boxplot

功能:绘制样本数据的箱形图。
使用格式:D.boxplot() / D.plot(kind = ‘box’)

有两种比较简单的方式绘制D的箱形图,其中一种是直接调用DataFrame的boxplot() 方法;另外一种是调用Series或者DataFrame的plot()方法,并用kind参数指定箱形图 (box)。其中,盒子的上、下四分位数和中值处有一条线段。箱形末端延伸出去的直线称为, 表示盒外数据的长度。如果在须外没有数据,则在须的底部有一点,点的颜色与须的颜色相同。

实例:绘制样本数据的箱形图,样本由两组正态分布的随机数据组成。其中,一组数据均值为0,标准差为1,另一组数据均值为1,标准差为1。绘制结果如图3-16所示。

代码清单3-11,箱形图

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

3-16

(5) 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。

实例:构造指数函数数据使用plot(logy = True)函数进行绘图,绘制结果如图3-17 所示。

代码清单3-12,指数函数plot图

# -*- coding:utf-8 -*-
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))) #原始数据
x.plot(label = '原始数据图',legend = True)
plt.show()
x.plot (logy = True, label = '对数数据图',legend = True)
plt.show()

3-17-1
3-17-2

(6)plot(yerr = error)

功能:绘制误差条形图。
使用格式:D.plot(yerr = error)

绘制误差条形图。D为Pandas的DataFrame或Series,代表着均值数据列,而error则 是误差列,此命令在y轴方向画出误差棒图;类似地,如果设置参数xerr = error,则在x轴 方向画出误差棒图。

实例:绘制误差棒图。绘制结果如图3-18所示。

代码清单3-13,绘制误差棒图

# -*- coding:utf-8 -*-
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()

3-18

3.4、小结

本章从应用的角度出发,从数据质量分析和数据特征分析两个方面对数据进行探索分析,最后介绍了 Python常用的数据探索函数及用例。数据质量分析要求我们拿到数据后先检测是否存在缺失值和异常值;数据特征分析要求我们在数据挖掘建模前,通过频率分布分析、 对比分析、帕累托分析、周期性分析、相关性分析等方法,对采集的样本数据的特征规律进 行分析,以了解数据的规律和趋势,为数据挖掘的后续环节提供支持。


http://chatgpt.dhexx.cn/article/2u6xl8jI.shtml

相关文章

对迁移学习中域适应的理解和3种技术的介绍

域适应是计算机视觉的一个领域&#xff0c;我们的目标是在源数据集上训练一个神经网络&#xff0c;并确保在显著不同于源数据集的目标数据集上也有良好的准确性。为了更好地理解域适应和它的应用&#xff0c;让我们先看看它的一些用例。 我们有很多不同用途的标准数据集&#…

基于1305变频器的几种变参数运行测试

该文主要用于学习归纳&#xff0c;因此会省略正规操作中很多步骤&#xff0c;详述原理。欢迎指正。 一. 设备参数 1305变频器一台(380-460V/9A/4.0KW/5HP)&#xff1b;三相异步交流电动机(1.5(2HP)/3.65A/380V/50Hz/1420rpm/4)&#xff0c;直流发电机组&#xff1b;计算机&am…

2022秋 | PTA编程训练(一)

目录 1.素数对猜想 2.数组元素循环右移问题 3.水仙花数 4.找出不是两个数组共有的元素 5.找鞍点 6.验证“哥德巴赫猜想” 7.黑洞数 8.装箱问题 9.IP地址转换 10.龟兔赛跑 1.素数对猜想 题目详情&#xff1a; 让我们定义dn​为&#xff1a;dn​pn1​−pn​&#xff0…

测试用例设计之正交表法详解

正交实验法的由来 拉丁方名称的由来 古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表。 数学家在设计方阵时,以每一个拉丁字母表示一个民族,所以设计的方阵称为拉丁方。 什么是n阶拉丁方? 用n个不同的拉丁字母排成一…

2018年华为数通技术大赛复赛拓扑题

正在准备华为杯的竞赛&#xff0c;期间的训练需要用心练习&#xff0c;希望我的这篇文章能对跟我一样的小伙伴们起到作用。在比赛之前&#xff0c;我们的目的都不是配通这个网络&#xff0c;而是在一次次错误中总结经验&#xff0c;你会受益匪浅&#xff01;不多说&#xff0c;…

华为网络技术比赛-云平台课件笔记

** &#xff08;一&#xff09;5 G ** 在这这张图片很重要啊&#xff01;&#xff01;&#xff01;&#xff01; 5G的子载波带宽是不固定的&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 注意&#xff1a; Massive MIMO &#xff08;1&a…

2022年金砖国家技能大赛-IT网络系统管理样题

2022年金砖国家技能大赛-IT网络系统管理(完整版) 1-网络构建部分 任务二:实现集团、北京数据中心、分公司、办事处的网络互联互通。 拓扑图: 2-项目实施: 一、完成模拟器组网,按照拓扑图搭建及命令,过程略。 二、完成交换部分配置: IDC2北京区域交换机 sysname…

2016年华为网络技术精英大赛复赛试题

2016年华为网络技术精英大赛复赛试题 【转载请注明出处】http://blog.csdn.net/guyuealian/article/details/51470839 1 实验考试说明 本次实验考试满分100分。 考生需要在除给定文档外没有任何协助的情况下&#xff0c;在150分钟内完成本考试的所有内容。 实验中请根据题干…

计算机网络应用技能大赛试题答案,《计算机网络应用》技能大赛模拟题及答案.doc...

《计算机网络应用》技能大赛模拟题及答案.doc 计算机网络应用技能大赛模拟题网络设备配置要求 拓扑编址设备名称接口地址PC1IP192.168.10.100/24PC2IP192.168.20.100/24PC3IP192.168.30.100/24PC4IP10.11.12.100/24S3760VLAN10192.168.10.1/24S3760VLAN20192.168.20.1/24S3760V…

16华为网络技术大赛模拟题答案详解

一、判断题 (1)VLSM的作用是&#xff1a;在有类的IP地址基础上&#xff0c;从主机位部分划分出相应的位数做为网络位。但是在路由器上部署时&#xff0c;需要路由协议的支持。 【解释】对&#xff0c;VLSMVariable Length Subnet Mask&#xff0c;可变长子网掩码 (2)有效的沟通…

2018华为网络技术大赛课程-服务器操作系统基础原理自测题答案

这是2018华为网络技术大赛课程-服务器操作系统基础原理自测题答案。 耶~祝大家满分&#xff01;

2019华为网络技术大赛模拟题

2019我的模拟题&#xff1a; 1.&#xff08;判断题&#xff09;小型机通常采用RISC和unix操作系统。 正确答案: A 你的答案: A (正确) 2.单选题&#xff09;磁盘接口的类型包括&#xff1a;1、SAS&#xff1b;2、SATA&#xff1b;3、NL-SAS&#xff1b;4、SCSI&#xff1b;5、…

一路走来之“华为网络技术大赛”(新含2018年资料)

2018年的网络大赛资料——学妹整理的&#xff0c;共347.9M&#xff0c;可加技术交流群下载&#xff01; 博客链接: http://codeshold.me/2017/05/ntec.html 参赛历程 在参加华为软件精英挑战赛的校园宣讲时&#xff0c;一位HR姐姐告诉我“你可以多报几个比赛啊&#xff1f;”…

2018华为网络技术大赛复赛

华为网络技术大赛复赛落下帷幕&#xff0c;考完上机ensp配置我已经基本知道结果了&#xff0c;题目真的不难&#xff0c;但是真的需要用心准备&#xff0c;包括前期学习的准备&#xff0c;也包括考试前半个小时准备&#xff0c;我就是那个前期花了很多时间&#xff0c;最后在考…

华为网络技术大赛模拟题答案详解

华为网络技术大赛模拟题答案详解 【尊重 原创&#xff0c;转载请注明出处 】http://blog.csdn.net/guyuealian/article/details/51354514 一、判断题 (1)VLSM的作用是&#xff1a;在有类的IP地址基础上&#xff0c;从主机位部分划分出相应的位数做为网络位。但是在路由器上部…

2018届华为网络技术大赛复赛组网(B)试题

时间&#xff1a;2018.5.6 下面附上复赛组网B卷及配置 总体来说&#xff0c;组网没有难度&#xff0c;需要极高的熟练度和细心。 1.基本配置要求&#xff1a; 1.1 各设备sysname命名请按照拓扑图描述进行配置&#xff1b;例如R1命令为R1&#xff0c;命名为大写&#xff1…

2018华为ICT大赛企业网络方向初赛大纲(来源自华为官方)

华为中国区大学生ICT大赛2018企业网络赛道初赛考试大纲一、 初赛概览&#xff1a;考试题型&#xff08;笔试&#xff09; 题量 时长 考试平台判断/单选/多选 100道 120分钟 华为E-Learning在线考试平台 二、 考试比例分布&#xff1a;技术方向 百分比IP 路由&交换 40% 65%网…

stata学习笔记|自相关处理问题

注意&#xff1a;不同于异方差问题&#xff0c;本篇中的自相关处理均基于时间序列数据&#xff0c;因为一般自相关问题往往出现在时间序列数据中&#xff0c;且在面板数据中出现的异方差、自相关问题往往直接运用聚类标准误即可解决。&#xff08;且陈强老师提供的自相关检验法…

R软件中自相关图和自相关系数怎么分析?

如图&#xff0c;我用acf()函数对一时间序列&#xff0c;做自相关检验&#xff0c;R出来的自相关系数和自相关图要怎么分析&#xff1f;求解&#xff01;&#xff01; 看图中的横轴lag表示滞后阶数&#xff0c;纵轴表示对应各阶的相关系数&#xff0c;0阶滞后表示对自己的自相关…

自相关性

文章连接&#xff1a;https://baike.baidu.com/item/%E8%87%AA%E7%9B%B8%E5%85%B3%E6%80%A7/4934317?fraladdin https://baike.baidu.com/item/%E9%9A%8F%E6%9C%BA%E8%AF%AF%E5%B7%AE%E9%A1%B9 随机误差项&#xff1a; 时间序列数据中经常会出现与时间有关的自相关误差 如何消…