对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函数中定义参数的四种方式
Nov 30 Python
使用Pyrex来扩展和加速Python程序的教程
Apr 13 Python
Python NumPy库安装使用笔记
May 18 Python
十个Python程序员易犯的错误
Dec 15 Python
Python实战之制作天气查询软件
May 14 Python
用Python批量把文件复制到另一个文件夹的实现方法
Aug 16 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
Feb 07 Python
详解Django配置JWT认证方式
May 09 Python
python实现文法左递归的消除方法
May 22 Python
python类共享变量操作
Sep 03 Python
Kmeans均值聚类算法原理以及Python如何实现
Sep 26 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
Oct 09 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
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
PHP中preg_match函数正则匹配的字符串长度问题
2015/05/27 PHP
php+mysql实现的二级联动菜单效果详解
2016/05/10 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
浅谈Javascript面向对象编程
2011/11/15 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
javascript实现可拖动变色并关闭层窗口实例
2015/05/15 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
深入探究node之Transform
2017/07/20 Javascript
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
Python使用剪切板的方法
2017/06/06 Python
Python将文本去空格并保存到txt文件中的实例
2018/07/24 Python
python将时分秒转换成秒的实例
2019/12/07 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
opencv+python实现均值滤波
2020/02/19 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
最新个人职业生涯规划书
2014/01/22 职场文书
优秀中学生事迹材料
2014/01/31 职场文书
护士的自我鉴定
2014/02/07 职场文书
租赁意向书范本
2014/04/01 职场文书
答谢会策划方案
2014/05/12 职场文书
2014年计生协会工作总结
2014/11/21 职场文书
初三英语教学计划
2015/01/23 职场文书
签证工作证明模板
2015/06/15 职场文书
CSS 实现Chrome标签栏的技巧
2021/08/04 HTML / CSS