对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 相关文章推荐
Python3基础之基本运算符概述
Aug 13 Python
Python 类与元类的深度挖掘 II【经验】
May 06 Python
非递归的输出1-N的全排列实例(推荐)
Apr 11 Python
Python绘制七段数码管实例代码
Dec 20 Python
几行Python代码爬取3000+上市公司的信息
Jan 24 Python
anaconda中更改python版本的方法步骤
Jul 14 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
Numpy 理解ndarray对象的示例代码
Apr 03 Python
Python新手学习函数默认参数设置
Jun 03 Python
Python filter过滤器原理及实例应用
Aug 18 Python
Python高并发和多线程有什么关系
Nov 14 Python
Python 的演示平台支持 WSGI 接口的应用
Apr 20 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
如何选购合适的收音机
2021/03/01 无线电
修改php.ini以达到屏蔽错误信息并记录日志
2013/06/16 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
特殊日期提示功能的实现方法
2016/06/16 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
[01:46]辉夜杯—打造中国DOTA新格局
2015/12/25 DOTA
Python中使用动态变量名的方法
2014/05/06 Python
python+selenium实现163邮箱自动登陆的方法
2017/12/31 Python
python实现俄罗斯方块
2018/06/26 Python
详解python-图像处理(映射变换)
2019/03/22 Python
Python reduce函数作用及实例解析
2020/05/08 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
Python类super()及私有属性原理解析
2020/06/15 Python
在Mac中配置Python虚拟环境过程解析
2020/06/22 Python
python的dict判断key是否存在的方法
2020/12/09 Python
在vscode中启动conda虚拟环境的思路详解
2020/12/25 Python
大学毕业生通用求职信
2013/09/28 职场文书
求职自荐信
2013/12/14 职场文书
安全大检查实施方案
2014/02/22 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
县政府领导班子四风问题对照检查材料思想汇报
2014/09/26 职场文书
单位工作证明书格式
2014/10/04 职场文书
我们的节日端午节活动总结
2015/02/11 职场文书
2015年建党94周年演讲稿
2015/03/19 职场文书
超搞笑婚前保证书
2015/05/08 职场文书
详解Python生成器和基于生成器的协程
2021/06/03 Python
Python实现天气查询软件
2021/06/07 Python