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中的join()方法的使用
May 19 Python
基于python 二维数组及画图的实例详解
Apr 03 Python
python使用tornado实现登录和登出
Jul 28 Python
Windows下Anaconda2安装NLTK教程
Sep 19 Python
Python 数值区间处理_对interval 库的快速入门详解
Nov 16 Python
基于Python函数和变量名解析
Jul 19 Python
python 魔法函数实例及解析
Sep 25 Python
如何运行带参数的python脚本
Nov 15 Python
解决django中form表单设置action后无法回到原页面的问题
Mar 13 Python
Python多线程threading创建及使用方法解析
Jun 17 Python
解决Python 写文件报错TypeError的问题
Oct 23 Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 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中,文件上传
2006/12/06 PHP
PHPMailer安装方法及简单实例
2008/11/25 PHP
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
extjs grid设置某列背景颜色和字体颜色的实现方法
2010/09/06 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
JS实现重新加载当前页面或者父页面的几种方法
2016/11/30 Javascript
jQuery与js实现颜色渐变的方法
2016/12/30 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
Python yield 使用方法浅析
2017/05/20 Python
Python探索之pLSA实现代码
2017/10/25 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
Python 处理图片像素点的实例
2019/01/08 Python
Django框架搭建的简易图书信息网站案例
2019/05/25 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
荷兰之家英文站:Holland at Home
2016/10/26 全球购物
教师自我鉴定范文
2013/11/10 职场文书
简短大学毕业感言
2014/01/18 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
搞笑婚前保证书
2015/02/28 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
新学期家长寄语2016
2015/12/03 职场文书
法制教育讲座心得体会
2016/01/14 职场文书