对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 zip文件 压缩
Dec 24 Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 Python
开始着手第一个Django项目
Jul 15 Python
Python 爬虫学习笔记之单线程爬虫
Sep 21 Python
python 写入csv乱码问题解决方法
Oct 23 Python
解决uWSGI的编码问题详解
Mar 24 Python
Python实现修改文件内容的方法分析
Mar 25 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
Dec 04 Python
Python实现投影法分割图像示例(二)
Jan 17 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
Jun 08 Python
Python图像读写方法对比
Nov 16 Python
浅谈python数据类型及其操作
May 25 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简单计算两个时间差的方法示例
2017/06/20 PHP
JavaScript中实现块作用域的方法
2010/04/01 Javascript
js数组的操作指南
2014/12/28 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
树结构之JavaScript
2017/01/24 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
JavaScript设计模式之观察者模式实例详解
2019/01/16 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
JavaScript实现简单随机点名器
2019/11/21 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
python实现文件分组复制到不同目录的例子
2014/06/04 Python
python装饰器与递归算法详解
2016/02/18 Python
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
浅谈Python中eval的强大与危害
2019/03/13 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
python list转置和前后反转的例子
2019/08/26 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
HTML5为输入框添加语音输入功能的实现方法
2017/02/06 HTML / CSS
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
蛋糕店的商业计划书范文
2014/01/27 职场文书
酒店营销策划方案
2014/02/07 职场文书
心理咨询承诺书
2014/05/20 职场文书
80后婚前协议书范本
2014/10/24 职场文书
周一问候语大全
2015/11/10 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
如何书写邀请函?
2019/06/24 职场文书
python 调用js的四种方式
2021/04/11 Python
在Django中使用MQTT的方法
2021/05/10 Python