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查看FTP是否能连接成功的方法
Jul 30 Python
深入探究Django中的Session与Cookie
Jul 30 Python
Python3中的json模块使用详解
May 05 Python
python traceback捕获并打印异常的方法
Aug 31 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
Aug 17 Python
浅谈Django+Gunicorn+Nginx部署之路
Sep 11 Python
给大家整理了19个pythonic的编程习惯(小结)
Sep 25 Python
python 计算积分图和haar特征的实例代码
Nov 20 Python
从多个tfrecord文件中无限读取文件的例子
Feb 17 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
Feb 26 Python
使用keras根据层名称来初始化网络
May 21 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
Jan 19 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连接access数据库
2008/03/27 PHP
php多文件上传实现代码
2014/02/20 PHP
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
PHP使用Redis实现Session共享的实现示例
2019/05/12 PHP
javascript字符串拼接的效率问题
2010/12/25 Javascript
jQuery中live方法的重复绑定说明
2011/10/21 Javascript
基于bootstrap实现广告轮播带图片和文字效果
2016/07/22 Javascript
node中Express 动态设置端口的方法
2017/08/04 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
2018/09/11 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
VUE实现图片验证码功能
2020/11/18 Javascript
使用Vue调取接口,并渲染数据的示例代码
2019/10/28 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
2020/07/19 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
[05:01]3.19DOTA2发布会 我们都是刀塔人
2014/03/25 DOTA
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
caffe binaryproto 与 npy相互转换的实例讲解
2018/07/09 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
2020/06/02 Python
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
移动HTML5前端框架—MUI的使用
2017/12/18 HTML / CSS
丝芙兰美国官网:SEPHORA美国
2016/08/03 全球购物
艺术设计专业毕业生推荐信
2014/07/08 职场文书
代收款委托书范本
2014/10/01 职场文书
机关作风建设剖析材料
2014/10/11 职场文书
2014年个人售房协议书
2014/10/30 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
宾馆客房管理制度
2015/08/06 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python
OpenCV 图像梯度的实现方法
2021/07/25 Python