对numpy中的数组条件筛选功能详解


Posted in Python onJuly 02, 2018

在程序设计中,时常会遇到数据的唯一化、相同、相异信息的提取等工作,在格式化的向量存储矩阵中南,numpy能够提供比较不错的快速处理功能。

1,唯一化的实现:

In [63]: data = np.array(['int','float','int','boolean','double','boolean'])
In [64]: data
Out[64]:
array(['int', 'float', 'int', 'boolean', 'double', 'boolean'],
  dtype='|S7')
In [65]: np.unique(data)
Out[65]:
array(['boolean', 'double', 'float', 'int'],
  dtype='|S7')
In [66]: data = np.array([1,5,3,6,2,4,1,3,5,7,9])
In [67]: data
Out[67]: array([1, 5, 3, 6, 2, 4, 1, 3, 5, 7, 9])
In [68]: np.unique(data)
Out[68]: array([1, 2, 3, 4, 5, 6, 7, 9])

通过unique可以实现数组的唯一化,并且,唯一化后的返回值会进行排序。

2,交集的实现

In [69]: data1 = np.arange(10)
In [70]: data1
Out[70]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [71]: data2 = np.array([2,8,6,4])
In [72]: np.intersect1d(data1,data2)
Out[72]: array([2, 4, 6, 8])

使用intersect1d可以实现求取两个数组集合的交集。

2,并集计算

In [73]: np.union1d(data1,data2)
Out[73]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

union1d可以实现对两个数组集合的并集计算。

3,子集判断

In [74]: np.in1d(data1,data2)
Out[74]: array([False, False, True, False, True, False, True, False, True, False], dtype=bool)
In [75]: np.in1d(data2,data1)
Out[75]: array([ True, True, True, True], dtype=bool)

通过in1d可以实现对第一个参数数组中的每个元素是否是第二个参数数组子集的判断,而最终通过判断返回的布尔数组即可判断两个参数数组的子集关系。

4,差异判断

4.1,集合差判断

In [76]: np.setdiff1d(data1,data2)
Out[76]: array([0, 1, 3, 5, 7, 9])
In [77]: np.setdiff1d(data2,data1)
Out[77]: array([], dtype=int32)

setdiff1d可以求解出存在于第一个集合但是并不存在于第二个集合中的元素。返回值是一个数组集合。

4.1 数组“异或”求解

In [78]: np.setxor1d(data1,data2)
Out[78]: array([0, 1, 3, 5, 7, 9])
In [79]: np.setxor1d(data2,data1)
Out[79]: array([0, 1, 3, 5, 7, 9])

setxor1d用于求解不同时存在于两个数组中的元素,并返回一个数组集合。两个参数的顺序变化不会改变求解的结果。返回的结果是是一个有序的数组序列。

上面的几个基本的逻辑判断功能如果能够使用得当,能够实现多种筛选判断的操作。

这篇对numpy中的数组条件筛选功能详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 字符串大小写转换的简单实例
Jan 21 Python
Python实现压缩和解压缩ZIP文件的方法分析
Sep 28 Python
Python实现读取txt文件并转换为excel的方法示例
May 17 Python
python十进制和二进制的转换方法(含浮点数)
Jul 07 Python
python实现矩阵打印
Mar 02 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
Jul 22 Python
Python多线程模块Threading用法示例小结
Nov 09 Python
Pytorch中实现只导入部分模型参数的方式
Jan 02 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
Mar 30 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
Apr 21 Python
pytorch 一行代码查看网络参数总量的实现
May 12 Python
python ansible自动化运维工具执行流程
Jun 24 Python
python matlibplot绘制多条曲线图
Feb 19 #Python
python matlibplot绘制3D图形
Jul 02 #Python
对numpy Array [: ,] 的取值方法详解
Jul 02 #Python
Python使用itertools模块实现排列组合功能示例
Jul 02 #Python
python绘制立方体的方法
Jul 02 #Python
python numpy 一维数组转变为多维数组的实例
Jul 02 #Python
Python实现通过继承覆盖方法示例
Jul 02 #Python
You might like
配置PHP使之能同时支持GIF和JPEG
2006/10/09 PHP
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
基于jquery的返回顶部效果(兼容IE6)
2011/01/17 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
动态载入js提高网页打开速度的方法
2014/07/04 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
JS实现购物车特效
2017/02/02 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
2019/04/04 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
selenium+java中用js来完成日期的修改
2019/10/31 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
js实现简单扫雷
2020/11/27 Javascript
[01:02:03]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS VG
2014/05/26 DOTA
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
python在windows下实现备份程序实例
2014/07/04 Python
Python实现批量下载图片的方法
2015/07/08 Python
Python如何实现文本转语音
2016/08/08 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
Python 中的range(),以及列表切片方法
2018/07/02 Python
python爬虫 requests-html的使用
2020/11/30 Python
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
生物科学专业个人求职信范文
2013/12/05 职场文书
求职自荐信怎么写
2014/03/06 职场文书
文明寝室申报材料
2014/05/12 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
论文答谢词
2015/01/20 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
心灵捕手观后感
2015/06/02 职场文书
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL