对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中使用装饰器和元编程实现结构体类实例
Jan 28 Python
在SAE上部署Python的Django框架的一些问题汇总
May 30 Python
Python实现两个list对应元素相减操作示例
Jun 09 Python
Python连接Mssql基础教程之Python库pymssql
Sep 16 Python
Python中反射和描述器总结
Sep 23 Python
Django web框架使用url path name详解
Apr 29 Python
OpenCV 模板匹配
Jul 10 Python
python+numpy实现的基本矩阵操作示例
Jul 19 Python
Tensorflow 卷积的梯度反向传播过程
Feb 10 Python
Python绘图实现台风路径可视化代码实例
Oct 23 Python
python实现企业微信定时发送文本消息的示例代码
Nov 24 Python
Python实现GIF动图以及视频卡通化详解
Dec 06 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
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
JAVA/JSP学习系列之七
2006/10/09 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
windows系统php环境安装swoole具体步骤
2021/03/04 PHP
JMenuTab简单使用说明
2008/03/13 Javascript
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
JQUERY对单选框(radio)操作的小例子
2013/04/25 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
2019/03/05 Javascript
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
python实现在sqlite动态创建表的方法
2015/05/08 Python
老生常谈Python之装饰器、迭代器和生成器
2017/07/26 Python
ubuntu中配置pyqt4环境教程
2017/12/27 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
Python必须了解的35个关键词
2020/07/16 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
CSS3制作ajax loader icon实现思路及代码
2013/08/25 HTML / CSS
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
Linux开机引导的步骤是什么
2014/02/26 面试题
实习单位接收函模板
2014/01/10 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
交通事故调解协议书
2015/05/20 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
2021年最新用于图像处理的Python库总结
2021/06/15 Python