对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的Django框架实现事务交易管理的教程
Apr 20 Python
Python多线程扫描端口代码示例
Feb 09 Python
python3 面向对象__类的内置属性与方法的实例代码
Nov 09 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
Mar 23 Python
简单了解python PEP的一些知识
Jul 13 Python
python爬虫 urllib模块反爬虫机制UA详解
Aug 20 Python
python multiprocessing多进程变量共享与加锁的实现
Oct 02 Python
python 解压、复制、删除 文件的实例代码
Feb 26 Python
Django 后台带有字典的列表数据与页面js交互实例
Apr 03 Python
详解python中的lambda与sorted函数
Sep 04 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
Sep 18 Python
python用tkinter实现一个gui的翻译工具
Oct 26 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手册及PHP编程标准
2006/12/17 PHP
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
php判断访问IP的方法
2015/06/19 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
PDO::quote讲解
2019/01/29 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
可在线编辑网页文字效果代码(单击)
2013/03/02 Javascript
javascript读写XML实现广告轮换(兼容IE、FF)
2013/08/09 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
javascript 判断是否是微信浏览器的方法
2016/10/09 Javascript
vue-router单页面路由
2017/06/17 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
2017/10/25 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
Vue页面骨架屏的实现方法
2018/05/22 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
Python中input和raw_input的一点区别
2014/10/21 Python
详解Python pygame安装过程笔记
2017/06/05 Python
python 文本单词提取和词频统计的实例
2018/12/22 Python
对Python3之进程池与回调函数的实例详解
2019/01/22 Python
Python中函数参数匹配模型详解
2019/06/09 Python
Python代码太长换行的实现
2019/07/05 Python
Python解决pip install时出现的Could not fetch URL问题
2019/08/01 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
银行存款证明样本
2014/01/17 职场文书
村委会换届选举方案
2014/05/03 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
2014年药店工作总结
2014/11/20 职场文书