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测试驱动开发实例
Oct 08 Python
Python3 操作符重载方法示例
Nov 23 Python
Python2.7实现多进程下开发多线程示例
May 31 Python
python日期相关操作实例小结
Jun 24 Python
pytorch numpy list类型之间的相互转换实例
Aug 18 Python
python路径的写法及目录的获取方式
Dec 26 Python
使用 Python 在京东上抢口罩的思路详解
Feb 27 Python
pycharm通过anaconda安装pyqt5的教程
Mar 24 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
May 08 Python
解决tensorflow 释放图,删除变量问题
Jun 23 Python
python和C++共享内存传输图像的示例
Oct 27 Python
Python命令行参数定义及需要注意的地方
Nov 30 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 minixml详解
2008/07/19 PHP
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
2014/05/10 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
javascript与CSS复习(二)
2010/06/29 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
浅谈关于JavaScript API设计的一些建议和准则
2015/06/24 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
js实现点击按钮弹出上传文件的窗口
2016/12/23 Javascript
iview中Select 选择器多选校验方法
2018/03/15 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
小程序云开发之用户注册登录
2019/05/18 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
Vue中this.$nextTick的作用及用法
2020/02/04 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
javascript实现一款好看的秒表计时器
2020/09/05 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
Python中创建二维数组
2018/10/17 Python
python解释器spython使用及原理解析
2019/08/24 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
python利用opencv保存、播放视频
2020/11/02 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)
2017/07/24 HTML / CSS
凯蒂·佩里个人女鞋品牌:Katy Perry Collections
2019/04/04 全球购物
幼儿园庆六一游园活动方案
2014/01/29 职场文书
大学生安全责任书
2014/07/25 职场文书
助学贷款贫困证明
2014/09/23 职场文书
2014年库房工作总结
2014/11/26 职场文书
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js