对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用fork来创建子进程注意事项
Jul 03 Python
对于Python的框架中一些会话程序的管理
Apr 20 Python
Python文件夹与文件的相关操作(推荐)
Jul 25 Python
python实现k-means聚类算法
Feb 23 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
Feb 14 Python
python实现beta分布概率密度函数的方法
Jul 08 Python
Python图像处理库PIL的ImageGrab模块介绍详解
Feb 26 Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
May 25 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
Jun 17 Python
Python爬虫爬取新闻资讯案例详解
Jul 14 Python
python爬取网页版QQ空间,生成各类图表
Jun 02 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
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
javascript,jquery闭包概念分析
2010/06/19 Javascript
js模拟类继承小例子
2010/07/17 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
JS从一组数据中找到指定的单条数据的方法
2016/06/02 Javascript
JavaScript的兼容性与调试技巧
2016/11/22 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
Vue 仿百度搜索功能实现代码
2017/02/16 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
vue弹窗组件使用方法
2018/04/28 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
2018/11/26 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
[56:17]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
python中解析json格式文件的方法示例
2017/05/03 Python
Python生成随机密码的方法
2017/06/16 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
python 读取、写入txt文件的示例
2020/09/27 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
银行会计业务的个人自我评价
2013/11/02 职场文书
金融行业务员的自我评价
2013/12/13 职场文书
公开承诺书格式
2014/05/21 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS
python处理json数据文件
2022/04/11 Python