对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多线程实例教程
Sep 06 Python
Python入门之modf()方法的使用
May 15 Python
python截取两个单词之间的内容方法
Dec 25 Python
python linecache 处理固定格式文本数据的方法
Jan 08 Python
Python发展简史 Python来历
May 14 Python
python实现登录密码重置简易操作代码
Aug 14 Python
Python中使用socks5设置全局代理的方法示例
Apr 15 Python
python语言是免费还是收费的?
Jun 15 Python
利用Python pandas对Excel进行合并的方法示例
Nov 04 Python
linux系统下pip升级报错的解决方法
Jan 31 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
Python使用BeautifulSoup4修改网页内容
May 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
php echo 输出字符串函数详解
2010/05/13 PHP
PHP发送短信代码分享
2015/08/11 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
PHP中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
PHP网站自动化配置的实现方法(必看)
2017/05/27 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
9行javascript代码获取QQ群成员具体实现
2013/10/16 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
AngularJS 表达式详解及实例代码
2016/09/14 Javascript
js实现倒计时效果(小于10补零)
2017/03/08 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
JavaScript Dom 绑定事件操作实例详解
2019/10/02 Javascript
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
python 5个顶级异步框架推荐
2020/09/09 Python
基于python实现百度语音识别和图灵对话
2020/11/02 Python
python不同版本的_new_不同点总结
2020/12/09 Python
html5开发三八女王节表白神器
2018/03/07 HTML / CSS
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
九州传奇上机题
2014/07/10 面试题
办公设备采购方案
2014/03/16 职场文书
公司联欢会策划方案
2014/05/19 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers
Windows10安装Apache2.4的方法步骤
2022/06/25 Servers