对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实现动态添加类的属性或成员函数的解决方法
Jul 16 Python
Python多线程编程(七):使用Condition实现复杂同步
Apr 05 Python
python遍历数组的方法小结
Apr 30 Python
Python list操作用法总结
Nov 10 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
Jun 13 Python
qpython3 读取安卓lastpass Cookies
Jun 19 Python
Python实现自动登录百度空间的方法
Jun 10 Python
Python lambda函数基本用法实例分析
Mar 16 Python
基于python requests库中的代理实例讲解
May 07 Python
Django框架使用mysql视图操作示例
May 15 Python
解决python调用自己文件函数/执行函数找不到包问题
Jun 01 Python
Python如何快速找到多个字典中的公共键(key)
Apr 29 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下intval()和(int)转换使用与区别
2008/07/18 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
input、button的不同type值在ajax提交表单时导致的陷阱
2009/02/24 Javascript
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
基于jquery的Repeater实现代码
2010/07/17 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
JavaScript的函数式编程基础指南
2016/03/19 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
jQuery选择器及jquery案例详解(必看)
2016/05/20 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
jQuery给表格添加分页效果
2017/03/02 Javascript
JS实现简单表格排序操作示例
2017/10/07 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
微信小程序后端无法保持session的原因及解决办法问题
2020/03/20 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
Vue解决移动端弹窗滚动穿透问题
2020/12/15 Vue.js
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
Python 命令行非阻塞输入的小例子
2013/09/27 Python
Python中的并发编程实例
2014/07/07 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
2016/06/23 Python
Python读写文件基础知识点
2019/06/10 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
详解css position 5种不同的值的用法
2019/07/30 HTML / CSS
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
美国五金商店:Ace Hardware
2018/03/27 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
延安红色之旅心得体会
2014/10/07 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang
常用的Python代码调试工具总结
2021/06/23 Python
详细聊聊vue中组件的props属性
2021/11/02 Vue.js
MySQL学习必备条件查询数据
2022/03/25 MySQL
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers