对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的Bottle框架中使用微信API的示例
Apr 23 Python
理解Python中函数的参数
Apr 27 Python
Python:Scrapy框架中Item Pipeline组件使用详解
Dec 27 Python
Python打印“菱形”星号代码方法
Feb 05 Python
解决已经安装requests,却依然提示No module named requests问题
May 18 Python
Python字符串的全排列算法实例详解
Jan 07 Python
Django保护敏感信息的方法示例
May 09 Python
python中对数据进行各种排序的方法
Jul 02 Python
Django实现web端tailf日志文件功能及实例详解
Jul 28 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
Pandas替换及部分替换(replace)实现流程详解
Oct 12 Python
selenium携带cookies模拟登陆CSDN的实现
Jan 19 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
JS操作XML中DTD介绍及使用方法分析
2019/07/04 PHP
尽可能写"友好"的"Javascript"代码
2007/01/09 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
JS实现Enter键跳转及控件获得焦点
2013/08/12 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
javascript实现英文首字母大写
2015/04/23 Javascript
JS实现定时自动关闭DIV层提示框的方法
2015/05/11 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
vue实现下载文件流完整前后端代码
2020/11/17 Vue.js
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
用C++封装MySQL的API的教程
2015/05/06 Python
python中的set实现不重复的排序原理
2018/01/24 Python
Python中的上下文管理器相关知识详解
2019/09/19 Python
python数据分析工具之 matplotlib详解
2020/04/09 Python
印尼在线旅游门户网站:NusaTrip
2019/11/01 全球购物
中软国际Java程序员笔试题
2014/07/19 面试题
实习生自荐信范文分享
2013/11/27 职场文书
应聘收银员个人的求职信
2013/11/30 职场文书
水利水电专业自荐信
2014/07/08 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
一年级小学生评语大全
2014/12/25 职场文书
离婚协议书格式
2015/01/26 职场文书
小学英语教学反思范文
2016/02/15 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
Redis Stream类型的使用详解
2021/11/11 Redis