对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中os和shutil模块实用方法集锦
May 13 Python
玩转python爬虫之正则表达式
Feb 17 Python
启动targetcli时遇到错误解决办法
Oct 26 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
Jun 04 Python
python2.7实现复制大量文件及文件夹资料
Aug 31 Python
Python range与enumerate函数区别解析
Feb 28 Python
新建文件时Pycharm中自动设置头部模板信息的方法
Apr 17 Python
利用Python实现Excel的文件间的数据匹配功能
Jun 16 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
Jul 14 Python
Python私有属性私有方法应用实例解析
Sep 15 Python
python 实现表情识别
Nov 21 Python
Python循环之while无限迭代
Apr 30 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写出自己的BLOG系统
2010/04/12 PHP
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
php中smarty实现多模版网站的方法
2015/06/11 PHP
php实现通过cookie换肤的方法
2015/07/13 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
jquery 插件开发方法小结
2009/10/23 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器
2013/06/21 Javascript
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
jquery select 设置默认选中的示例代码
2014/02/07 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
require.js配合插件text.js实现最简单的单页应用程序
2016/07/12 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
2017/03/29 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
Python安装使用命令行交互模块pexpect的基础教程
2016/05/12 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
教师职称自我鉴定
2014/02/12 职场文书
公务员培的训心得体会
2014/09/01 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
高考升学宴答谢词
2015/01/20 职场文书
详解用Python把PDF转为Word方法总结
2021/04/27 Python
关于mysql中string和number的转换问题
2022/06/14 MySQL