numpy array找出符合条件的数并赋值的示例代码


Posted in Python onJune 01, 2022

在python中利用numpy array进行数据处理,经常需要找出符合某些要求的数据位置,有时候还需要对这些位置重新赋值。这里总结了几种找出符合条件数据位置的方法。

这里以一个8*8的随机数组举例,来找出大于零的数。

import numpy as np
a = random.randint(-10,10,size=(8,8))
>>>
array([[  5,   5,  -7,   7,  -8,  -7,   0,  -8],
       [ -4,   9,   8,  -3,   6,  -4,  -7,  -5],
       [  7,   0,   6,   6,  -4,  -2,  -8,   2],
       [  6,  -5,   8,   4,   7,  -8,  -4,  -4],
       [  0,   1,  -1,  -8,  -1,   9,   4,   1],
       [  4,  -8,  -1,  -8,  -2,  -6,  -1,   9],
       [  7,   7,   9,  -9,   4,   8,   3,   1],
       [ -8,   4,  -2,   4,  -1,  -4, -10,   0]])

1.直接利用条件索引

location= a[a>0]

print(location)
>>> array([5, 5, 7, 9, 8, 6, 7, 6, 6, 2, 6, 8, 4, 7, 1, 9, 4, 1, 4, 9, 7, 7, 9,
       4, 8, 3, 1, 4, 4])
# 直接输出了大于0的数字
#--------------------------------------------------------------#

# 我们可以用下面的方法将小于0的数字都设置为零,留下大于零的数字
b = a.copy()
b[b<=0]=0

print(b)
>>>
[[5 5 0 7 0 0 0 0]
 [0 9 8 0 6 0 0 0]
 [7 0 6 6 0 0 0 2]
 [6 0 8 4 7 0 0 0]
 [0 1 0 0 0 9 4 1]
 [4 0 0 0 0 0 0 9]
 [7 7 9 0 4 8 3 1]
 [0 4 0 4 0 0 0 0]]
 # 这就将所有大于零的保留了下来

#--------------------------------------------------------------#

#还可以此类推,将大于零的位置都设置成1,可得到大于一的位置
b = a.copy()
b[b>0] = 1
b[b<=0] = 0
print(b)
>>>
[[1 1 0 1 0 0 0 0]
 [0 1 1 0 1 0 0 0]
 [1 0 1 1 0 0 0 1]
 [1 0 1 1 1 0 0 0]
 [0 1 0 0 0 1 1 1]
 [1 0 0 0 0 0 0 1]
 [1 1 1 0 1 1 1 1]
 [0 1 0 1 0 0 0 0]]

2.利用numpy.where()

# results = np.where(condition, [x, y])
# 当条件为真时,对应位置返回x中的值,条件不成立则返回y中的值
c = np.where(a>0,a,0)  #满足大于0的值保留,不满足的设为0
print(c)
>>>
[[5 5 0 7 0 0 0 0]
 [0 9 8 0 6 0 0 0]
 [7 0 6 6 0 0 0 2]
 [6 0 8 4 7 0 0 0]
 [0 1 0 0 0 9 4 1]
 [4 0 0 0 0 0 0 9]
 [7 7 9 0 4 8 3 1]
 [0 4 0 4 0 0 0 0]]

# 大于零为1小于零为0
c = np.where(a>0,1,0)  #满足大于0的值保留,不满足的设为0
print(c)
[[1 1 0 1 0 0 0 0]
 [0 1 1 0 1 0 0 0]
 [1 0 1 1 0 0 0 1]
 [1 0 1 1 1 0 0 0]
 [0 1 0 0 0 1 1 1]
 [1 0 0 0 0 0 0 1]
 [1 1 1 0 1 1 1 1]
 [0 1 0 1 0 0 0 0]]

3.直接逻辑运算

a > 0   # 得到判断矩阵
array([[ True,  True, False,  True, False, False, False, False],
       [False,  True,  True, False,  True, False, False, False],
       [ True, False,  True,  True, False, False, False,  True],
       [ True, False,  True,  True,  True, False, False, False],
       [False,  True, False, False, False,  True,  True,  True],
       [ True, False, False, False, False, False, False,  True],
       [ True,  True,  True, False,  True,  True,  True,  True],
       [False,  True, False,  True, False, False, False, False]], dtype=bool)

到此这篇关于numpy array找出符合条件的数并赋值的示例代码的文章就介绍到这了,更多相关numpy array赋值内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Python 相关文章推荐
详解Django框架中用户的登录和退出的实现
Jul 23 Python
Python 闭包的使用方法
Sep 07 Python
python表格存取的方法
Mar 07 Python
python和mysql交互操作实例详解【基于pymysql库】
Jun 04 Python
Python flask框架post接口调用示例
Jul 03 Python
Python中base64与xml取值结合问题
Dec 22 Python
Python基于numpy模块实现回归预测
May 14 Python
初学者学习Python好还是Java好
May 26 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
Jun 10 Python
Python classmethod装饰器原理及用法解析
Oct 17 Python
python 提高开发效率的5个小技巧
Oct 19 Python
Python&Matlab实现灰狼优化算法的示例代码
Mar 21 Python
 python中的元类metaclass详情
May 30 #Python
Python自动化实战之接口请求的实现
Python中的 enumerate和zip详情
May 30 #Python
python如何为list实现find方法
May 30 #Python
python实现商品进销存管理系统
May 30 #Python
python如何查找列表中元素的位置
May 30 #Python
Python数组变形的几种实现方法
May 30 #Python
You might like
PHP执行zip与rar解压缩方法实现代码
2010/12/05 PHP
PHP中执行cmd命令的方法
2014/10/11 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
PHP获取链表中倒数第K个节点的方法
2018/01/18 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
2018/03/15 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
js解析与序列化json数据(三)json的解析探讨
2013/02/01 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
Bootstrap CSS布局之图像
2016/12/17 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
详谈js模块化规范
2017/07/07 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
angular4强制刷新视图的方法
2018/10/09 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
微信公众号平台接口开发 获取access_token过程解析
2019/08/14 Javascript
javascript 模块依赖管理的本质深入详解
2020/04/30 Javascript
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
python实现狄克斯特拉算法
2019/01/17 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
Python文件操作方法详解
2020/02/09 Python
基于python实现可视化生成二维码工具
2020/07/08 Python
Python如何解除一个装饰器
2020/08/07 Python
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
德国电子商城:ComputerUniverse
2017/04/21 全球购物
代码中finally中的代码会不会执行
2012/02/06 面试题
小学英语教学反思案例
2014/02/04 职场文书
新学期教师寄语
2014/04/02 职场文书
领导干部民主生活会自我剖析材料范文
2014/09/20 职场文书
会计实训报告范文
2014/11/04 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
浅谈react useEffect闭包的坑
2021/06/08 Javascript