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深入学习之对象的属性
Aug 31 Python
Python的加密模块md5、sha、crypt使用实例
Sep 28 Python
python简单文本处理的方法
Jul 10 Python
Django的session中对于用户验证的支持
Jul 23 Python
Python循环语句之break与continue的用法
Oct 14 Python
python中is与双等于号“==”的区别示例详解
Nov 21 Python
Python获取Redis所有Key以及内容的方法
Feb 19 Python
用pycharm开发django项目示例代码
Jun 13 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
python Selenium 库的使用技巧
Oct 16 Python
python爬取天气数据的实例详解
Nov 20 Python
Python可视化神器pyecharts绘制地理图表
Jul 07 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
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
PHPMAILER实现PHP发邮件功能
2018/04/18 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
深入理解JavaScript系列(2) 揭秘命名函数表达式
2012/01/15 Javascript
jquery处理json数据实例分析
2014/06/03 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
基于javascript实现彩票随机数生成(简单版)
2020/04/17 Javascript
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
2016/08/05 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
JS模拟超市简易收银台小程序代码解析
2017/08/18 Javascript
使用3D引擎threeJS实现星空粒子移动效果
2020/09/13 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
Python实现冒泡排序的简单应用示例
2017/12/11 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
python如何运行js语句
2020/09/09 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
医药学专业大学生职业生涯规划书论文
2014/01/21 职场文书
九年级物理教学反思
2014/01/29 职场文书
班班通校本培训方案
2014/03/12 职场文书
电子信息工程专业求职信
2014/06/28 职场文书
《赵州桥》教学反思
2016/02/17 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python
解决golang在import自己的包报错的问题
2021/04/29 Golang