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编写批量卸载手机中安装的android应用脚本
Jul 21 Python
跟老齐学Python之变量和参数
Oct 10 Python
Python利用IPython提高开发效率
Aug 10 Python
Python3 中文文件读写方法
Jan 23 Python
python实现批量图片格式转换
Jun 16 Python
python zip()函数使用方法解析
Oct 31 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
python实现门限回归方式
Feb 29 Python
Python发送邮件封装实现过程详解
May 09 Python
Matplotlib 折线图plot()所有用法详解
Jul 28 Python
django创建css文件夹的具体方法
Jul 31 Python
Flask response响应的具体使用
Jul 15 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
关于Sphinx创建全文检索的索引介绍
2013/06/25 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
深入理解PHP中的Streams工具
2015/07/03 PHP
js+css在交互上的应用
2010/07/18 Javascript
jQuery源码中的chunker 正则过滤符分析
2012/07/31 Javascript
JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件
2012/08/14 Javascript
js实现单一html页面两套css切换代码
2013/04/11 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
JavaScript使用cookie记录临时访客信息的方法
2015/04/07 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
NodeJS使用七牛云存储上传文件的方法
2017/07/24 NodeJs
Vue实战之vue登录验证的实现代码
2017/10/31 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
python文件拆分与重组实例
2018/12/10 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
Python多进程编程常用方法解析
2020/03/26 Python
python 字符串的驻留机制及优缺点
2020/06/19 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
接受捐赠答谢词
2014/01/27 职场文书
财务人员求职自荐书范文
2014/02/10 职场文书
火车来了教学反思
2014/02/11 职场文书
长城的导游词
2015/01/30 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
汉字听写大会观后感
2015/06/12 职场文书
汽车车尾标语大全
2015/08/11 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
vue如何清除浏览器历史栈
2022/05/25 Vue.js