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 相关文章推荐
Python3.6连接Oracle数据库的方法详解
May 18 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
Aug 02 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
Aug 30 Python
Python中类的创建和实例化操作示例
Feb 27 Python
使用Python Pandas处理亿级数据的方法
Jun 24 Python
Python 导入文件过程图解
Oct 15 Python
Flask项目中实现短信验证码和邮箱验证码功能
Dec 05 Python
python numpy--数组的组合和分割实例
Feb 24 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
Apr 21 Python
Python3 ffmpeg视频转换工具使用方法解析
Aug 10 Python
Python系统公网私网流量监控实现流程
Nov 23 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的ASP防火墙
2006/10/09 PHP
浅析php单例模式
2014/11/25 PHP
全面解析PHP面向对象的三大特征
2017/06/10 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
基于jquery的cookie的用法
2011/01/10 Javascript
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析
2014/06/09 Javascript
jQuery中prevUntil()方法用法实例
2015/01/08 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
2019/09/27 jQuery
JS实现字体背景跑马灯
2020/01/06 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
[47:04]LGD vs infamous Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
python微元法计算函数曲线长度的方法
2018/11/08 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
2018/12/29 Python
详解Python self 参数
2019/08/30 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
在django admin详情表单显示中添加自定义控件的实现
2020/03/11 Python
家长给孩子的评语
2014/01/30 职场文书
2014国培学习感言
2014/03/05 职场文书
可口可乐广告词
2014/03/20 职场文书
个人批评与自我批评材料
2014/10/17 职场文书
广告业务员岗位职责
2015/02/13 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
《暗黑破坏神2:重制版》本周进行第一轮A测 目前可官网进行申请报名
2021/04/07 其他游戏
JS数组方法some、every和find的使用详情
2021/10/05 Javascript
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫
进行数据处理的6个 Python 代码块分享
2022/04/06 Python
Windows Server 2012 R2 磁盘分区教程
2022/04/29 Servers