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调用C/C++动态链接库的方法详解
Jul 22 Python
Python3实战之爬虫抓取网易云音乐的热门评论
Oct 09 Python
matplotlib中legend位置调整解析
Dec 19 Python
Python中单线程、多线程和多进程的效率对比实验实例
May 14 Python
对Python中TKinter模块中的Label组件实例详解
Jun 14 Python
PyQt5 QTableView设置某一列不可编辑的方法
Jun 25 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 Python
用Python去除图像的黑色或白色背景实例
Dec 12 Python
flask框架自定义url转换器操作详解
Jan 25 Python
Python Tornado之跨域请求与Options请求方式
Mar 28 Python
如何在Python3中使用telnetlib模块连接网络设备
Sep 21 Python
tensorflow中的梯度求解及梯度裁剪操作
May 26 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实现百度网盘图片直链的代码分享
2012/11/01 PHP
浅谈PHP值mysql操作类
2016/06/29 PHP
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
关于Javascript中defer和async的区别总结
2016/09/20 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
TypeScript的安装、使用、自动编译的实现
2020/04/10 Javascript
vue如何搭建多页面多系统应用
2020/06/17 Javascript
Python中使用hashlib模块处理算法的教程
2015/04/28 Python
浅谈Python浅拷贝、深拷贝及引用机制
2016/12/15 Python
python去除扩展名的实例讲解
2018/04/23 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
HTML5实现移动端点击翻牌功能
2020/10/23 HTML / CSS
New Balance澳大利亚官网:运动鞋和健身服装
2019/02/23 全球购物
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
中学教师岗位职责
2013/11/26 职场文书
社区活动邀请函范文
2014/01/29 职场文书
关于环保的演讲稿
2014/05/10 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
师德师风整改措施
2014/10/24 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
全国助残日活动总结
2015/05/11 职场文书
师德培训心得体会2016
2016/01/09 职场文书
sql字段解析器的实现示例
2021/06/23 SQL Server
instantclient客户端 连接oracle数据库
2022/04/26 Oracle