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 解析XML文件
Apr 15 Python
Python 3.x 连接数据库示例(pymysql 方式)
Jan 19 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
Apr 11 Python
Python实现比较扑克牌大小程序代码示例
Dec 06 Python
微信跳一跳游戏python脚本
Apr 01 Python
在python里从协程返回一个值的示例
Feb 19 Python
python sort、sort_index方法代码实例
Mar 28 Python
基于Python数据结构之递归与回溯搜索
Feb 26 Python
Django Serializer HiddenField隐藏字段实例
Mar 31 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
Jun 12 Python
Python+Xlwings 删除Excel的行和列
Dec 19 Python
python爬虫爬取图片的简单代码
Jan 18 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中防止伪造跨站请求的小招式
2011/09/02 PHP
php实现插入数组但不影响原有顺序的方法
2015/03/27 PHP
php查询及多条件查询
2017/02/26 PHP
javascript 常用方法总结
2009/06/03 Javascript
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
jquery解决图片路径不存在执行替换路径
2013/02/06 Javascript
JS实现同时搜索百度和必应的方法
2015/01/27 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
2017/03/30 Javascript
详解JavaScript数组过滤相同元素的5种方法
2017/05/23 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
Python中的pprint折腾记
2015/01/21 Python
Tornado 多进程实现分析详解
2018/01/12 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
python实现图片转字符小工具
2019/04/30 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
2019/12/11 Python
Python通过yagmail实现发送邮件代码解析
2020/10/27 Python
Django实现简单的分页功能
2021/02/22 Python
解决pycharm 格式报错tabs和space不一致问题
2021/02/26 Python
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
老总助理工作岗位职责
2014/02/06 职场文书
岗位聘任书范文
2014/03/29 职场文书
责任心演讲稿
2014/05/14 职场文书
青年教师个人总结
2015/02/11 职场文书
业务员年终工作总结2015
2015/05/28 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
JavaScript实现班级抽签小程序
2021/05/19 Javascript