对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之再深点,更懂list
Sep 20 Python
python 网络编程详解及简单实例
Apr 25 Python
python中日志logging模块的性能及多进程详解
Jul 18 Python
python3实现公众号每日定时发送日报和图片
Feb 24 Python
python dataframe 输出结果整行显示的方法
Jun 14 Python
浅谈Pandas:Series和DataFrame间的算术元素
Dec 22 Python
Python实现查找字符串数组最长公共前缀示例
Mar 27 Python
Python变量访问权限控制详解
Jun 29 Python
python web框架中实现原生分页
Sep 08 Python
解决import tensorflow as tf 出错的原因
Apr 16 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
Jun 11 Python
简单的命令查看安装的python版本号
Aug 28 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
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
PHP实现的简单异常处理类示例
2017/05/04 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
JQuery 入门实例1
2009/06/25 Javascript
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
2011/01/09 Javascript
js 编程笔记 无名函数
2011/06/28 Javascript
js单向链表的具体实现实例
2013/06/21 Javascript
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
arguments对象验证函数的参数是否合法
2015/06/26 Javascript
JS实现控制文本框的内容
2016/07/10 Javascript
深入理解JavaScript中Ajax
2016/08/02 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
详解template标签用法(含vue中的用法总结)
2021/01/12 Vue.js
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
Python 元类使用说明
2009/12/18 Python
python字典序问题实例
2014/09/26 Python
python2.7的编码问题与解决方法
2016/10/04 Python
Python3.6简单反射操作示例
2018/06/14 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
python制作英语翻译小工具代码实例
2019/09/09 Python
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
"序列点" 是什么
2016/07/29 面试题
大学生个人事迹材料
2014/01/21 职场文书
鉴定评语大全
2014/05/05 职场文书
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
Redis Cluster集群动态扩容的实现
2021/07/15 Redis