对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教程之用py2exe将PY文件转成EXE文件
Jun 12 Python
深入理解Python分布式爬虫原理
Nov 23 Python
python实现zabbix发送短信脚本
Sep 17 Python
python3 打开外部程序及关闭的示例
Nov 06 Python
python实现网页自动签到功能
Jan 21 Python
python爬虫之验证码篇3-滑动验证码识别技术
Apr 11 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
Jul 04 Python
解决Python中pandas读取*.csv文件出现编码问题
Jul 12 Python
python爬虫爬取幽默笑话网站
Oct 24 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
Jun 03 Python
Python自动创建Excel并获取内容
Sep 16 Python
python实现的web监控系统
Apr 27 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预定义常量
2006/12/25 PHP
mysql 搜索之简单应用
2007/04/27 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
写出高质量的PHP程序
2012/02/04 PHP
Web层改进II-用xmlhttp 无声息提交复杂表单
2007/01/22 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
js删除局部变量的实现方法
2016/06/25 Javascript
JavaScript 函数节流详解及方法总结
2017/02/09 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
JavaScript登录验证基础教程
2017/11/01 Javascript
基于vue-ssr服务端渲染入门详解
2018/01/08 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
[00:36]DOTA2勇士令状莱恩声望物品——冥晶之厄展示
2018/05/25 DOTA
python dict remove数组删除(del,pop)
2013/03/24 Python
tensorflow输出权重值和偏差的方法
2018/02/10 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
Python socket模块实现的udp通信功能示例
2019/04/10 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
Python笔试面试题小结
2019/09/07 Python
浅析python 字典嵌套
2020/09/29 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
TripAdvisor德国:全球领先的旅游网站
2017/12/07 全球购物
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
C++:局部变量能否和全局变量重名
2014/03/03 面试题
各营销点岗位职责范本
2014/03/05 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
电子商务专业求职信
2014/07/10 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
mysql 8.0.24版本安装配置方法图文教程
2021/05/12 MySQL
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android