numpy ndarray 按条件筛选数组,关联筛选的例子


Posted in Python onNovember 26, 2019

最近的项目中大量涉及数据的预处理工作,对于ndarray的使用非常频繁。其中ndarray如何进行数值筛选,总结了几种方法。

1.按某些固定值筛选

如下面这段代码从,ndarray中可以筛选出数值等于3的子数组和其在原数组中的索引位置。

import numpy as np

arr = np.array([1, 1, 1, 134, 45, 3, 46, 45, 65, 3, 23424, 234, 12, 12, 3, 546, 1, 2])
print(np.where(arr==3))
print(arr[np.where(arr == 3)])

Output:

(array([ 5, 9, 14], dtype=int32),)
[3 3 3]

2.按多个固定值筛选

按上述方法筛选多个固定值也是可行的,将不同条件用括号括起来,之间打 | 即可。

import numpy as np

arr = np.array([1, 1, 1, 134, 45, 3, 46, 45, 65, 3, 23424, 234, 12, 12, 3, 546, 1, 2])
print(np.where((arr == 3) | (arr == 1)))
print(arr[np.where((arr == 3) | (arr == 1))])

Output:

(array([ 0, 1, 2, 5, 9, 14, 16], dtype=int32),)
[1 1 1 3 3 3 1]

3.按范围筛选

除了按固定值,我们还可以按一定的范围进行筛选

import numpy as np

arr = np.array([1, 1, 1, 134, 45, 3, 46, 45, 65, 3, 23424, 234, 12, 12, 3, 546, 1, 2])
print(np.where(arr > 3))
print(arr[np.where(arr > 3)])

Output:

(array([ 3, 4, 6, 7, 8, 10, 11, 12, 13, 15], dtype=int32),)
[ 134  45  46  45  65 23424  234  12  12  546]

如果不需要index,还可以有更快的方法

import numpy as np

arr = np.array([1, 1, 1, 134, 45, 3, 46, 45, 65, 3, 23424, 234, 12, 12, 3, 546, 1, 2])
print(arr[arr > 3])

Output:

[ 134  45  46  45  65 23424  234  12  12  546]

那为什么还需要用np.where呢?因为索引可以满足不同数组间的筛选,比如有a, b 两个数组我们需要筛选出所有a == 0的b时即可使用np.where函数。

import numpy as np

a = np.array([0, 0, 1, 1, 0, 1, 1, 0, 1])
b = np.arange(len(a))
print(a)
print(b)
print(b[np.where(a == 0)])

Output:

[0 0 1 1 0 1 1 0 1]
[0 1 2 3 4 5 6 7 8]
[0 1 4 7]

以上这篇numpy ndarray 按条件筛选数组,关联筛选的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python发送邮件的实例代码(支持html、图片、附件)
Mar 04 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
May 11 Python
用python结合jieba和wordcloud实现词云效果
Sep 05 Python
python机器学习理论与实战(一)K近邻法
Jan 28 Python
python2.6.6如何升级到python2.7.14
Apr 08 Python
Python实现的堆排序算法示例
Apr 29 Python
python实现数据导出到excel的示例--普通格式
May 03 Python
python 字典 按key值大小 倒序取值的实例
Jul 06 Python
PyQt5使用QTimer实现电子时钟
Jul 29 Python
python多进程并行代码实例
Sep 30 Python
python plotly画柱状图代码实例
Dec 13 Python
flask利用flask-wtf验证上传的文件的方法
Jan 17 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
Nov 26 #Python
Python如何使用BeautifulSoup爬取网页信息
Nov 26 #Python
python实现在多维数组中挑选符合条件的全部元素
Nov 26 #Python
Python实现图片添加文字
Nov 26 #Python
从numpy数组中取出满足条件的元素示例
Nov 26 #Python
python实现图片上添加图片
Nov 26 #Python
numpy:找到指定元素的索引示例
Nov 26 #Python
You might like
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
javascript SocialHistory 检查访问者是否访问过某站点
2008/08/02 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
学习node.js 断言的使用详解
2019/03/18 Javascript
jquery插件开发模式实例详解
2019/07/20 jQuery
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
Javascript类型判断相关例题及解析
2020/08/26 Javascript
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
Python入门篇之面向对象
2014/10/20 Python
python通过函数属性实现全局变量的方法
2015/05/16 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
2017/03/12 Python
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
Python实现文件信息进行合并实例代码
2018/01/17 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
pyqt5 实现多窗口跳转的方法
2019/06/19 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
Python reduce函数作用及实例解析
2020/05/08 Python
关于python中remove的一些坑小结
2021/01/04 Python
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
致铅球运动员广播稿精选
2014/01/12 职场文书
学校文明单位申报材料
2014/05/06 职场文书
效能监察建议书
2014/05/19 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
结婚典礼致辞
2015/07/28 职场文书
师德培训心得体会2016
2016/01/09 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
利用uni-app生成微信小程序的踩坑记录
2022/04/05 Javascript