对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 相关文章推荐
Web服务器框架 Tornado简介
Jul 16 Python
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
Nov 06 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
Jun 01 Python
Python实现的下载网页源码功能示例
Jun 13 Python
python学习之matplotlib绘制散点图实例
Dec 09 Python
python实现快速排序的示例(二分法思想)
Mar 12 Python
使用 Python 实现文件递归遍历的三种方式
Jul 18 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
Jul 12 Python
Django Aggregation聚合使用方法解析
Aug 01 Python
Python实现画图软件功能方法详解
Jul 28 Python
如何使用pycharm连接Databricks的步骤详解
Sep 23 Python
PYTHON使用Matplotlib去实现各种条形图的绘制
Mar 22 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 foreach循环中使用引用的问题
2013/11/06 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
JavaScript常用字符串与数组扩展函数小结
2016/04/24 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
jQuery.validate.js表单验证插件的使用代码详解
2018/10/22 jQuery
JavaScript中的"=、==、==="区别讲解
2019/01/22 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
vue实现移动端H5数字键盘组件使用详解
2020/08/25 Javascript
python实现哈希表
2014/02/07 Python
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
Python自动化开发学习之三级菜单制作
2017/07/14 Python
python和shell获取文本内容的方法
2018/06/05 Python
pandas读取csv文件,分隔符参数sep的实例
2018/12/12 Python
Python多进程写入同一文件的方法
2019/01/14 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
python实现图片压缩代码实例
2019/08/12 Python
Python 通过监听端口实现唯一脚本运行方式
2020/05/05 Python
Python代码执行时间测量模块timeit用法解析
2020/07/01 Python
详解css3 flex弹性盒自动铺满写法
2020/09/17 HTML / CSS
HTML5 Web 存储详解
2016/09/16 HTML / CSS
英国家庭和商业健身器材购物网站:Fitness Options
2018/07/05 全球购物
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
Myprotein西班牙官网:欧洲第一大运动营养品牌
2020/02/24 全球购物
教师队伍管理制度
2014/01/14 职场文书
财务管理专业求职信
2014/06/11 职场文书
美术学专业求职信
2014/07/23 职场文书
婚宴致辞
2015/07/28 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
mysql 8.0.24 安装配置方法图文教程
2021/05/12 MySQL
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers