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 相关文章推荐
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
May 02 Python
一些常用的Python爬虫技巧汇总
Sep 28 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
May 24 Python
基于Django contrib Comments 评论模块(详解)
Dec 08 Python
运行django项目指定IP和端口的方法
May 14 Python
儿童python练习实例
May 27 Python
python批量创建指定名称的文件夹
Mar 21 Python
python编写微信公众号首图思路详解
Dec 13 Python
python dumps和loads区别详解
Feb 04 Python
Python3变量与基本数据类型用法实例分析
Feb 14 Python
Idea安装python显示无SDK问题解决方案
Aug 12 Python
使用python将微信image下.dat文件解密为.png的方法
Nov 30 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
使用数据库保存session的方法
2006/10/09 PHP
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
2015/03/03 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
2016/03/07 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
十分钟带你快速了解React16新特性
2017/11/10 Javascript
js操作二进制数据方法
2018/03/03 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
Vue父子组件双向绑定传值的实现方法
2018/07/31 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
理解python多线程(python多线程简明教程)
2014/06/09 Python
python海龟绘图实例教程
2014/07/24 Python
Python中的下划线详解
2015/06/24 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
python实现自动登录后台管理系统
2018/10/18 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
聊聊python在linux下与windows下导入模块的区别说明
2021/03/03 Python
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
法国一家芭蕾舞鞋公司:Repetto
2018/11/12 全球购物
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
医学院校毕业生自荐信范文
2014/01/01 职场文书
产品促销活动策划书
2014/01/15 职场文书
你知道Java Spring的两种事务吗
2022/03/16 Java/Android