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 相关文章推荐
python 不关闭控制台的实现方法
Oct 23 Python
在Python下利用OpenCV来旋转图像的教程
Apr 16 Python
对python模块中多个类的用法详解
Jan 10 Python
200行python代码实现2048游戏
Jul 17 Python
python实现按行分割文件
Jul 22 Python
python next()和iter()函数原理解析
Feb 07 Python
django 实现简单的插入视频
Apr 07 Python
Scrapy框架介绍之Puppeteer渲染的使用
Jun 19 Python
Python基于xlrd模块处理合并单元格
Jul 28 Python
详解python UDP 编程
Aug 24 Python
Python面向对象多态实现原理及代码实例
Sep 16 Python
利用python+request通过接口实现人员通行记录上传功能
Jan 13 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
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
php连接mssql的一些相关经验及注意事项
2013/02/05 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
PHP获取当前执行php文件名的代码
2017/03/02 PHP
一些常用的Javascript函数
2006/12/22 Javascript
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
浅析JavaScript访问对象属性和方法及区别
2015/11/16 Javascript
jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
2016/04/19 Javascript
第三篇Bootstrap网格基础
2016/06/21 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
2016/10/04 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
HTML的select控件美化
2017/03/27 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
Javascript和jquery在selenium的使用过程
2019/10/31 jQuery
解决vue语法会有延迟加载显现{{xxx}}的问题
2019/11/14 Javascript
Python中%r和%s的详解及区别
2017/03/16 Python
Django框架使用mysql视图操作示例
2019/05/15 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
高考考python编程是真的吗
2020/07/20 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
英国家喻户晓的高街品牌:River Island
2017/11/28 全球购物
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
高二美术教学反思
2014/01/14 职场文书
慰问敬老院活动总结
2014/04/26 职场文书
领导干部“四风”查摆问题个人整改措施
2014/10/28 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
只用20行Python代码实现屏幕录制功能
2021/06/02 Python
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript