从numpy数组中取出满足条件的元素示例


Posted in Python onNovember 26, 2019

例如问题:从 arr 数组中提取所有奇数元素。

input:arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

output: #> array([1, 3, 5, 7, 9])

Solution:

#Input
 
>>> arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
 
#Solution
 
arr = arr[arr % 2 == 1]
 
>>> array([1, 3, 5, 7, 9])

这是对奇数元素的提取,其他条件同理,在这个问题上我们深入再学习一下,首先 numpy 中的 array 数组是可以直接对数组中的每个元素进行处理的。例如我们想对每个元素减一:

#input
 
>>> arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
 
#Solution
 
>>> arr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> arr - 1
array([-1, 0, 1, 2, 3, 4, 5, 6, 7, 8])

从上面的例子我们可以看出来,对 arr 直接进行减一操作,结果是对每一个元素都进行了减一的操作,数组的维度不变,为了满足取出特定条件的元素这个操作,我们可以进行条件判断,例如判断每个元素是否为奇数:

#input
 
>>> arr = np.arange(10)
>>> arr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
#solution
 
>>> arr % 2 == 1
array([False, True, False, True, False, True, False, True, False, True])

由此可见,条件判断后输出为和 arr 相同维度的数组,但是其中每个元素为布尔类型的值,取值为数组 arr 对每个元素分别进行条件判断的结果。

下面我们分析对 arr 数组进行特定取值,给其一个布尔类型的 arr 数组,并且维度与 arr 相同,以此得到取值的目的:

#input
 
>>> arr_bool = np.array([1, 1, 0, 0, 1, 1, 0, 0, 1, 1], dtype=bool)
>>> arr_bool
array([ True, True, False, False, True, True, False, False, True, True])
 
#solution
>>> arr[arr_bool]
array([0, 1, 4, 5, 8, 9])

从上述例子,我们构建了一个布尔类型的数组为 arr_bool ,并且维度与 arr 相同,进行直接嵌入实现了取值,以此完成了我们最终的目的,可以对任意满足条件的元素进行提取。并且理解了其中的原理。

PS:番外篇,如果维度不同可以吗?

#input
 
>>> arr_bool = np.ones(11, dtype=bool)
>>> arr_bool
array([ True, True, True, True, True, True, True, True, True, True, True])   #注意!!这里有11个 True 哦。
 
#solution
>>> arr[arr_bool]
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
IndexError: boolean index did not match indexed array along dimension 0; dimension is 10 but corresponding boolean dimension is 11

由上可见,维度必须保持一致,从 arr 数组里才可以按照 bool 类型取出对应位置为 True 的元素。这个性质帮助我们可以更灵活的处理 numpy 数组。

PS2: 如何替换满足条件的元素为其它值呢?

>>> arr = np.arange(10)
>>> arr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> arr[arr%2 == 1] = -1
>>> arr
array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1])

以上这篇从numpy数组中取出满足条件的元素示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用MELIAE分析程序内存占用实例
Feb 18 Python
在Python编程过程中用单元测试法调试代码的介绍
Apr 02 Python
在Python中使用matplotlib模块绘制数据图的示例
May 04 Python
深入探究Python中变量的拷贝和作用域问题
May 05 Python
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
Python中的条件判断语句基础学习教程
Feb 07 Python
探究python中open函数的使用
Mar 01 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
python代码打印100-999之间的回文数示例
Nov 24 Python
PyTorch中Tensor的数据统计示例
Feb 17 Python
Python使用OpenPyXL处理Excel表格
Jul 02 Python
最新pycharm安装教程
Nov 18 Python
python实现图片上添加图片
Nov 26 #Python
numpy:找到指定元素的索引示例
Nov 26 #Python
python中seaborn包常用图形使用详解
Nov 25 #Python
解决python中的幂函数、指数函数问题
Nov 25 #Python
妙用itchat! python实现久坐提醒功能
Nov 25 #Python
python pygame实现滚动横版射击游戏城市之战
Nov 25 #Python
python使用itchat模块给心爱的人每天发天气预报
Nov 25 #Python
You might like
虫族 Zerg 历史背景
2020/03/14 星际争霸
PHP以指定字段为索引返回数据库所取的数据数组
2013/06/30 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
2010/01/12 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
js confirm()方法的使用方法实例
2013/07/13 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
JavaScript方法_动力节点Java学院整理
2017/06/28 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
vue-cli常用设置总结
2018/02/24 Javascript
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
2019/05/31 jQuery
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
Python中enumerate函数代码解析
2017/10/31 Python
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
Python解决八皇后问题示例
2018/04/22 Python
详解python中的线程与线程池
2019/05/10 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
django中嵌套的try-except实例
2020/05/21 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
通俗讲解python 装饰器
2020/09/07 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
python中numpy数组与list相互转换实例方法
2021/01/29 Python
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
十七岁的单车观后感
2015/06/12 职场文书
导游词之云南省玉龙雪山
2019/12/19 职场文书
pt-archiver 主键自增
2022/04/26 MySQL