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实现的阳历转阴历(农历)算法
Apr 25 Python
Python进程间通信用法实例
Jun 04 Python
Python中你应该知道的一些内置函数
Mar 31 Python
Windows下Python3.6安装第三方模块的方法
Nov 22 Python
Python3内置模块之base64编解码方法详解
Jul 13 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
Aug 05 Python
Pytorch实现的手写数字mnist识别功能完整示例
Dec 13 Python
Python实现使用dir获取类的方法列表
Dec 24 Python
Pytorch实现基于CharRNN的文本分类与生成示例
Jan 08 Python
python传到前端的数据,双引号被转义的问题
Apr 03 Python
Django前后端分离csrf token获取方式
Dec 25 Python
利用python做表格数据处理
Apr 13 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
php获取某个目录大小的代码
2008/09/10 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
2014/11/19 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
Laravel框架模型的创建及模型对数据操作示例
2019/05/07 PHP
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
python基于phantomjs实现导入图片
2016/05/13 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
2017/11/30 Python
python网络爬虫学习笔记(1)
2018/04/09 Python
python实现内存监控系统
2021/03/07 Python
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
python for和else语句趣谈
2019/07/02 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
Django多数据库联用实现方法解析
2020/11/12 Python
python热力图实现简单方法
2021/01/29 Python
一个精品风格的世界:Atterley
2019/05/01 全球购物
波兰运动鞋网上商店:Distance.pl
2020/07/30 全球购物
数字天堂软件测试面试题
2012/12/23 面试题
中专毕业生的自我鉴定
2013/12/01 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
关于长城的导游词
2015/01/30 职场文书
置业顾问岗位职责
2015/02/09 职场文书
vue使用echarts实现折线图
2022/03/21 Vue.js