使用函数进行简单的统计分析

  1. 排序

sort函数的排序方法可以指定一个axis参数,使得sort函数可以沿着指定轴对数据集进行排序,如代码 46所示。

代码 46 使用sort函数进行排序

In[10]:

np.random.seed(42)  #设置随机种子

arr = np.random.randint(1,10,size = 10)  #生成随机数

print('创建的数组为:',arr)

Out[10]:

创建的数组为: [7 4 8 5 7 3 7 8 5 4]

In[11]:

arr.sort()  #直接排序

print('排序后数组为:',arr)

Out[11]:

排序后数组为: [3 4 4 5 5 7 7 7 8 8]

In[12]:

arr = np.random.randint(1,10,size = (3,3))  #生成3行3列的随机数

print('创建的数组为:',arr)

Out[12]:

创建的数组为: [[8 8 3]

[6 5 2]

[8 6 2]]

In[13]:

arr.sort(axis = 1)  #沿着横轴排序

print('排序后数组为:',arr)

Out[13]:

排序后数组为: [[3 8 8]

[2 5 6]

[2 6 8]]

In[14]:

arr.sort(axis = 0)  #沿着纵轴排序

print('排序后数组为:',arr)

Out[14]:

排序后数组为: [[2 5 6]

[2 6 8]

[3 8 8]]

argsort函数和lexsort函数可以实现在给定一个或多个键下,得到一个有整数构成的索引数组,索引值说明了数据在新的顺序下的位置。如代码 47所示。

代码 47 使用argsort函数进行排序

In[15]:

arr = np.array([2,3,6,8,0,7])

print('创建的数组为:',arr)

Out[15]:

创建的数组为: [2 3 6 8 0 7]

In[16]:

print('排序后数组为:',arr.argsort())  #返回值为重新排序值的下标

Out[16]:

排序后数组为: [4 0 1 2 5 3]

lexsort函数可以一次性对满足多个键的数组执行间接排序。使用lexsort函数排序如代码 48所示。

代码 48 使用lexsort函数进行排序

In[17]:

a = np.array([3,2,6,4,5])

b = np.array([50,30,40,20,10])

c = np.array([400,300,600,100,200])

d = np.lexsort((a,b,c))  #lexsort函数只接受一个参数,即(a,b,c)

print('排序后数组为:',list(zip(a[d],b[d],c[d])))  #多个键值排序是按照最后一个传入数据计算的

Out[17]:

排序后数组为: [(4, 20, 100), (5, 10, 200), (2, 30, 300), (3, 50, 400), (6, 40, 600)]

  1. 去重和重复数据

在NumPy中可以通过unique函数找出数组中的唯一值并返回已排序的结果,如代码 49所示。

代码 49 数组内数据去重

In[18]:

names = np.array(['小明', '小黄', '小花', '小明', '小花', '小兰', '小白'])

print('创建的数组为:',names)

Out[18]:

数组为: ['小明' '小黄' '小花' '小明' '小花' '小兰' '小白']

In[139:

print('去重后的数组为:',np.unique(names))

Out[19]:

去重后的数组为: ['小兰' '小明' '小白' '小花' '小黄']

In[20]:

print('去重后的数组为:',sorted(set(names)))  #跟np.unique等价的python代码实现过程

Out[20]:

去重后的数组为: ['小兰', '小明', '小白', '小花', '小黄']

In[21]:

ints = np.array([1,2,3,4,4,5,6,6,7,8,8,9,10])  #创建数值型数据

print('创建的数组为:',ints)

Out[21]:

数组为: [ 1,2,3,4,4,5,6,6,7,8,8,9,10]

In[22]:

print('去重后的数组为:',np.unique(ints))

Out[22]:

去重后的数组为: [ 1,2,3,4,5,6,7,8,9,10]

在NumPy中主要使用tile函数和repeat函数实现数据重复。如代码 410和代码 411所示

代码 410 使用tile函数实现数据重复

In[23]:

arr = np.arange(5)

print('创建的数组为:',arr)

Out[23]:

创建的数组为: [0 1 2 3 4]

In[24]:

print('重复后数组为:',np.tile(arr,3))  #对数组进行重复

Out[24]:

重复后数组为: [0 1 2 3 4 0 1 2 3 4 0 1 2 3 4]

代码 411 使用repeat函数实现数据重复

In[25]:

np.random.seed(42)  #设置随机种子

arr = np.random.randint(0,10,size = (3,3))

print('创建的数组为:',arr)

Out[25]:

创建的数组为: [[6 3 7]

[4 6 9]

[2 6 7]]

In[26]:

print('重复后数组为:',arr.repeat(2, axis = 0))  #按行进行元素重复

Out[26]:

重复后数组为: [[6 3 7]

[6 3 7]

[4 6 9]

[4 6 9]

[2 6 7]

[2 6 7]]

In[27]:

print('重复后数组为:',arr.repeat(2, axis = 1))  #按列进行元素重复

Out[27]:

重复后数组为: [[6 6 3 3 7 7]

[4 4 6 6 9 9]

[2 2 6 6 7 7]]

  1. 常用的统计函数

常用的统计函数使用示例如代码 412所示。

代码 412 NumPy中常用的统计函数

In[28]:

arr = np.arange(20).reshape(4,5)

print('创建的数组为:',arr)

Out[28]:

创建的数组为: [[ 0  1  2  3  4]

[ 5  6  7  8  9]

[10 11 12 13 14]

[15 16 17 18 19]]

In[29]:

print('数组的和为:',np.sum(arr))  #计算数组的和

Out[29]:

数组的和为: 190

In[30]:

print('数组横轴的和为:',arr.sum(axis = 0))  #沿着横轴计算求和

Out[30]:

数组横轴的和为: [30 34 38 42 46]

In[31]:

print('数组纵轴的和为:',arr.sum(axis = 1))  #沿着纵轴计算求和

Out[31]:

数组纵轴的和为: [10 35 60 85]

In[32]:

print('数组的均值为:',np.mean(arr))  #计算数组均值

Out[32]:

数组的均值为: 9.5

In[33]:

print('数组横轴的均值为:',arr.mean(axis = 0))  #沿着横轴计算数组均值

Out[33]:

数组横轴的均值为: [  7.5   8.5   9.5  10.5  11.5]

In[34]:

print('数组纵轴的均值为:',arr.mean(axis = 1))  #沿着纵轴计算数组均值

Out[34]:

数组纵轴的均值为:[  2.   7.  12.  17.]

In[35]:

print('数组的标准差为:',np.std(arr))  #计算数组标准差

Out[35]:

数组的标准差为: 5.766281297335398

In[36]:

print('数组的方差为:',np.var(arr))  #计算数组方差

Out[36]:

数组的方差为: 33.25

In[37]:

print('数组的最小值为:',np.min(arr))  #计算数组最小值

Out[37]:

数组的最小值为: 0

In[38]:

print('数组的最大值为:',np.max(arr))  #计算数组最大值

Out[38]:

数组的最大值为: 19

In[39]:

print('数组的最小元素为:',np.argmin(arr))  #返回数组最小元素的索引

Out[39]:

数组的最小元素为: 0

In[40]:

print('数组的最大元素为:',np.argmax(arr))  #返回数组最大元素的索引

Out[40]:

数组的最大元素为: 19

在NumPy中cumsum函数和cumprod函数采用不聚合计算,产生一个由中间结果组成的数组,如代码 413所示。

代码 413 cumsum函数和cumprod函数

In[41]:

arr = np.arange(2,10)

print('创建的数组为:',arr)

Out[41]:

创建的数组为: [2 3 4 5 6 7 8 9]

In[42]:

print('数组元素的累计和为:',np.cumsum(arr))  #计算所有元素的累计和

Out[42]:

数组元素的累计和为: [ 2  5  9 14 20 27 35 44]

In[43]:

print('数组元素的累计积为:',np.cumprod(arr))  #计算所有元素的累计积

Out[43]:

数组元素的累计积为: [     2      6     24    120    720   5040  40320 362880]

以iris数据集中的花萼长度数据(已保存为csv格式)为例,对其进行统计分析,如代码 414所示。

代码 414 花萼长度数据统计分析

In[44]:

#读取文件

iris_sepal_length = np.loadtxt("./iris_sepal_length.csv", delimiter=",")

print('花萼长度表为:',iris_sepal_length)

Out[44]:

花萼长度表为: [5.1 4.9 4.7 4.6 5.  5.4 4.6 5.  4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1

5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.  5.  5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.

5.5 4.9 4.4 5.1 5.  4.5 4.4 5.  5.1 4.8 5.1 4.6 5.3 5.  7.  6.4 6.9 5.5

6.5 5.7 6.3 4.9 6.6 5.2 5.  5.9 6.  6.1 5.6 6.7 5.6 5.8 6.2 5.6 5.9 6.1

6.3 6.1 6.4 6.6 6.8 6.7 6.  5.7 5.5 5.5 5.8 6.  5.4 6.  6.7 6.3 5.6 5.5

5.5 6.1 5.8 5.  5.6 5.7 5.7 6.2 5.1 5.7 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3

6.7 7.2 6.5 6.4 6.8 5.7 5.8 6.4 6.5 7.7 7.7 6.  6.9 5.6 7.7 6.3 6.7 7.2

6.2 6.1 6.4 7.2 7.4 7.9 6.4 6.3 6.1 7.7 6.3 6.4 6.  6.9 6.7 6.9 5.8 6.8

6.7 6.7 6.3 6.5 6.2 5.9]

In[45]:

iris_sepal_length.sort()  #对数据进行排序

print('排序后的花萼长度表为:',iris_sepal_length)

Out[45]:

排序后的花萼长度表为: [4.3 4.4 4.4 4.4 4.5 4.6 4.6 4.6 4.6 4.7 4.7 4.8 4.8 4.8 4.8 4.8 4.9 4.9

4.9 4.9 4.9 4.9 5.  5.  5.  5.  5.  5.  5.  5.  5.  5.  5.1 5.1 5.1 5.1

5.1 5.1 5.1 5.1 5.1 5.2 5.2 5.2 5.2 5.3 5.4 5.4 5.4 5.4 5.4 5.4 5.5 5.5

5.5 5.5 5.5 5.5 5.5 5.6 5.6 5.6 5.6 5.6 5.6 5.7 5.7 5.7 5.7 5.7 5.7 5.7

5.7 5.8 5.8 5.8 5.8 5.8 5.8 5.8 5.9 5.9 5.9 6.  6.  6.  6.  6.  6.  6.1

6.1 6.1 6.1 6.1 6.1 6.2 6.2 6.2 6.2 6.3 6.3 6.3 6.3 6.3 6.3 6.3 6.3 6.3

6.4 6.4 6.4 6.4 6.4 6.4 6.4 6.5 6.5 6.5 6.5 6.5 6.6 6.6 6.7 6.7 6.7 6.7

6.7 6.7 6.7 6.7 6.8 6.8 6.8 6.9 6.9 6.9 6.9 7.  7.1 7.2 7.2 7.2 7.3 7.4

7.6 7.7 7.7 7.7 7.7 7.9]

In[46]:

print('去重后的花萼长度表为:',np.unique(iris_sepal_length))  #去除重复值

Out[46]:

去重后的花萼长度表为: [4.3 4.4 4.5 4.6 4.7 4.8 4.9 5.  5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6.

6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7.  7.1 7.2 7.3 7.4 7.6 7.7 7.9]

In[47]:

print('花萼长度表的总和为:',np.sum(iris_sepal_length))  #计算数组总和

Out[47]:

花萼长度表的总和为: 876.5

In[48]:

print('花萼长度表的累计和为:',np.cumsum(iris_sepal_length))  #计算所有元素的累计和

Out[48]:

花萼长度表的累计和为: [  4.3   8.7  13.1  17.5  22.   26.6  31.2  35.8  40.4  45.1  49.8  54.6

59.4  64.2  69.   73.8  78.7  83.6  88.5  93.4  98.3 103.2 108.2 113.2

118.2 123.2 128.2 133.2 138.2 143.2 148.2 153.2 158.3 163.4 168.5 173.6

178.7 183.8 188.9 194.  199.1 204.3 209.5 214.7 219.9 225.2 230.6 236.

241.4 246.8 252.2 257.6 263.1 268.6 274.1 279.6 285.1 290.6 296.1 301.7

307.3 312.9 318.5 324.1 329.7 335.4 341.1 346.8 352.5 358.2 363.9 369.6

375.3 381.1 386.9 392.7 398.5 404.3 410.1 415.9 421.8 427.7 433.6 439.6

445.6 451.6 457.6 463.6 469.6 475.7 481.8 487.9 494.  500.1 506.2 512.4

518.6 524.8 531.  537.3 543.6 549.9 556.2 562.5 568.8 575.1 581.4 587.7

594.1 600.5 606.9 613.3 619.7 626.1 632.5 639.  645.5 652.  658.5 665.

671.6 678.2 684.9 691.6 698.3 705.  711.7 718.4 725.1 731.8 738.6 745.4

752.2 759.1 766.  772.9 779.8 786.8 793.9 801.1 808.3 815.5 822.8 830.2

837.8 845.5 853.2 860.9 868.6 876.5]

In[49]:

print('花萼长度表的均值为:',np.mean(iris_sepal_length))  #计算数组均值

Out[49]:

花萼长度表的均值为: 5.843333333333334

In[50]:

print('花萼长度表的标准差为:',np.std(iris_sepal_length))  #计算数组标准差

Out[50]:

花萼长度表的标准差为: 0.8253012917851409

In[51]:

print('花萼长度表的方差为:',np.var(iris_sepal_length))  #计算数组方差

Out[51]:

花萼长度表的方差为: 0.6811222222222223

In[52]:

print('花萼长度表的最小值为:',np.min(iris_sepal_length))  #计算最小值

Out[52]:

花萼长度表的最小值为: 4.3

In[53]:

print('花萼长度表的最大值为:',np.max(iris_sepal_length))  #计算最大值

Out[53]:

花萼长度表的最大值为: 7.9

数据挖掘技术-使用函数进行简单的统计分析相关推荐

  1. 数据挖掘技术简介[转]

    关键词: 关键词:数据挖掘    数据集合 1. 引言 数据挖掘(Data Mining)是从大量的.不完全的.有噪声的.模糊的.随机的数据中提取隐含在其中的.人们事先不知道的.但又是潜在有用的信息和 ...

  2. 数据挖掘技术的算法与应用【转】

    [code="java"] 研究方向前沿读书报告 数据挖掘技术的算法与应用 目录 第一章 数据仓库... 5 1.1 概论... 5 1.2 数据仓库体系结构... 6 1.3 数 ...

  3. 数据挖掘技术的算法与应用

    研究方向前沿读书报告 数据挖掘技术的算法与应用 目录 第一章 数据仓库... 5 1.1 概论... 5 1.2 数据仓库体系结构... 6 1.3 数据仓库规划.设计与开发... 7 1.3.1 确 ...

  4. 数据挖掘技术的来源、历史、研究内容及常用技术

    数据挖掘技术的来源.历史.研究内容及常用技术 1 数据挖掘技术的由来 1.1网络之后的下一个技术热点 我们现在已经生活在一个网络化的时代,通信.计算机和网络技术正改变着整个人类和社会.如果用芯片集成度 ...

  5. 数据挖掘技术及其应用

    一.数据挖掘技术的基本概念 随着计算机技术的发展,各行各业都开始采用计算机及相应的信息技术进行管理和运营,这使得企业生成.收集.存贮和处理数据的能力大大提高,数据量与日俱增.企业数据实际上是企业的经验 ...

  6. 数据挖掘技术的算法与应用读书报告

    数据挖掘作为现在比较有用的支持决策系统的一种手段有着广泛的应用.其有很多种方法,本文主要基于关联规则类等相关问题进行论述.按照挖掘过程进行组织.首先,有数据仓库的建立和数据挖掘的概述.其次是关联规则的 ...

  7. 一篇文章让你了解大数据挖掘技术

    大数据如果想要产生价值,对它的处理过程无疑是非常重要的,其中大数据分析和大数据挖掘就是最重要的两部分.在前几期的科普中,小编已经为大家介绍了大数据分析的相关情况,本期小编就为大家讲解大数据挖掘技术,让 ...

  8. 互联网金融中的数据挖掘技术应用

    本文来自网易云社区. 在金融行业中,客户关系管理.风险计量与管理.精准营销.交易执行.安全与反欺诈等所需的业务分析都需要大数据分析与挖掘,而这些正是实现迅速和科学决策的核心基础.大数据时代背景驱动的金 ...

  9. “泰迪杯”挑战赛 - 通过数据挖掘技术实现道路缺陷自动识别

    目 录 挖掘目标 分析方法与过程 2.1. 总体流程 2.2. 具体步骤 2.2.1 缺陷图像预处理 2.2.2 缺陷图像分割 2.2.3 缺陷图像特征提取 2.2.4 BP 神经网络模式识别 2.3 ...

最新文章

  1. ORB_SLAM2中Tracking线程的三种追踪方式
  2. 半阈值化的应用说明及利用函数threshold实现半阈值化的方法
  3. (转载)浏览器兼容性问题大汇总
  4. linux系统能安装到sdc上吗,如何安装linux系统
  5. 经理人如何与这“六种人”打交道?
  6. LWCOPY为前端代码提供复制功能的插件
  7. tor 127.0.0.1_如何创建虚荣Tor .onion网站地址
  8. php admin_priv,ECshop后台开发模块步骤
  9. idc机房建设费用_2018年全球数据中心建设成本解读
  10. Linux将数据从小存储通过FTP发送到大存储中
  11. JAVA 前端上传文件,后端解析文件流并写入数据库
  12. 大漠为什么不支持win10_Win10系统注册使用大漠插件的方法与设置!常见错误0x8002801...
  13. Coreldraw 制作透明小水滴按钮(转)
  14. 这样的生产计划与排产,我看行
  15. ubuntu18.04双系统安装教程
  16. InfiniBand架构和技术实战总结
  17. Django——在线教育项目总结
  18. 单片机,51红外通信代码,详细注释【普中科技】【350行】【原创】
  19. Flask实现ElasticSearch搜索
  20. 常见加密分类以及接口sign签名

热门文章

  1. 使用python预测基金_使用python先知3 1创建预测
  2. 骑士VS热火直播NBA常规赛骑士VS热火直播12月3日骑士VS热火视频直播
  3. Wireshark抓包软件查看网线直连设备的IP地址
  4. 内蒙古中考计算机考试知识点总结,内蒙古包头中考语文备考分析及知识总结.doc...
  5. ios开发中常用的一些软件
  6. 成都房地产市场火爆,房价走势之数据分析
  7. 大连理工大学计算机组成原理实验,大连理工大学计算机组成原理实验报告(二).docx...
  8. centos 怎么安装 telnet
  9. C++ 命令行CMD 的控制与源代码
  10. 什么是语言类型的强弱?