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写的Socks5协议代理服务器
Aug 06 Python
Python3 正在毁灭 Python的原因分析
Nov 28 Python
基于python的Tkinter实现一个简易计算器
Dec 31 Python
python多进程实现文件下载传输功能
Jul 28 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
Feb 19 Python
Python中字符串List按照长度排序
Jul 01 Python
PyTorch: 梯度下降及反向传播的实例详解
Aug 20 Python
用Python画小女孩放风筝的示例
Nov 23 Python
python django中8000端口被占用的解决
Dec 17 Python
Python实现发票自动校核微信机器人的方法
May 22 Python
Keras SGD 随机梯度下降优化器参数设置方式
Jun 19 Python
Pyhton爬虫知识之正则表达式详解
Apr 01 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
Apache+PHP+MySQL搭建PHP开发环境图文教程
2020/08/06 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
js返回上一页并刷新代码整理
2012/12/21 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
详解Node.js一行命令上传本地文件到服务器
2019/04/22 Javascript
OpenLayers3实现测量功能
2020/09/25 Javascript
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
基于wxpython实现的windows GUI程序实例
2015/05/30 Python
python设计模式大全
2016/06/27 Python
windows下ipython的安装与使用详解
2016/10/20 Python
python 读写txt文件 json文件的实现方法
2016/10/22 Python
Sanic框架应用部署方法详解
2018/07/18 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
Django实现将views.py中的数据传递到前端html页面,并展示
2020/03/16 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
python如何使用腾讯云发送短信
2020/09/17 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
中层干部岗位职责
2013/12/18 职场文书
先进个人获奖感言
2014/01/24 职场文书
学子宴答谢词
2014/01/25 职场文书
跟单业务员岗位职责
2014/03/08 职场文书
学生上课说话检讨书
2014/10/25 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
教师个人自我评价
2015/03/04 职场文书
2016年情人节广告语
2016/01/28 职场文书
安全生产协议书
2016/03/22 职场文书
常用的Python代码调试工具总结
2021/06/23 Python