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中apply函数的用法实例教程
Jul 31 Python
Python中多线程的创建及基本调用方法
Jul 08 Python
python 性能提升的几种方法
Jul 15 Python
Python爬虫爬取一个网页上的图片地址实例代码
Jan 16 Python
Selenium(Python web测试工具)基本用法详解
Aug 10 Python
Python Django给admin添加Action的方法实例详解
Apr 29 Python
对YOLOv3模型调用时候的python接口详解
Aug 26 Python
使用python 的matplotlib 画轨道实例
Jan 19 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
Mar 12 Python
解决python中import文件夹下面py文件报错问题
Jun 01 Python
Pycharm自带Git实现版本管理的方法步骤
Sep 18 Python
详解numpy.ndarray.reshape()函数的参数问题
Oct 13 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
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
2011/05/07 PHP
php中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
一款Jquery 分页插件的改造方法(服务器端分页)
2011/07/11 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
Javascript复制实例详解
2016/01/28 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
2016/04/15 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
2017/01/04 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
vue实现图片预览组件封装与使用
2019/07/13 Javascript
微信小程序如何获取地址
2019/12/24 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
Python函数和模块的使用总结
2019/05/20 Python
python tkinter实现界面切换的示例代码
2019/06/14 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
个人职业生涯规划书1500字
2013/12/31 职场文书
军人违纪检讨书
2014/02/04 职场文书
军训感想500字
2014/02/20 职场文书
青年文明号服务承诺
2014/03/31 职场文书
工程部部长岗位职责
2015/02/12 职场文书
上下班时间调整通知
2015/04/23 职场文书
2015年幼儿园中班开学寄语
2015/05/27 职场文书