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批量检查网站的可用性
Sep 09 Python
简单谈谈python中的语句和语法
Aug 10 Python
JSONLINT:python的json数据验证库实例解析
Nov 28 Python
Python中的pygal安装和绘制直方图代码分享
Dec 08 Python
通过pykafka接收Kafka消息队列的方法
Dec 27 Python
详解Python并发编程之从性能角度来初探并发编程
Aug 23 Python
解决python中的幂函数、指数函数问题
Nov 25 Python
解决TensorFlow GPU版出现OOM错误的问题
Feb 03 Python
Tensorflow之梯度裁剪的实现示例
Mar 08 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
Sep 16 Python
基于python获取本地时间并转换时间戳和日期格式
Oct 27 Python
python单例模式的应用场景实例讲解
Feb 24 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数组内存耗用太多问题的解决方法
2010/04/05 PHP
JSON在PHP中的应用介绍
2012/09/08 PHP
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
php配合jquery实现增删操作具体实例
2013/12/12 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
Laravel学习教程之路由模块
2017/08/18 PHP
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
JS实现黑色大气的二级导航菜单效果
2015/09/18 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
Javascript实现登录记住用户名和密码功能
2017/03/22 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
React如何避免重渲染
2018/04/10 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
Tesserocr库的正确安装方式
2018/10/19 Python
python爬虫之验证码篇3-滑动验证码识别技术
2019/04/11 Python
python实现微信自动回复机器人功能
2019/07/11 Python
如何在Django项目中引入静态文件
2019/07/26 Python
django-rest-swagger对API接口注释的方法
2019/08/29 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
2020/04/20 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
应届生求职信写作技巧
2013/10/24 职场文书
简单而又朴实的个人求职信分享
2013/12/12 职场文书
央视元宵晚会主持串词
2014/03/25 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
思想政治表现评语
2015/01/04 职场文书
捐助感谢信
2015/01/22 职场文书
土地租赁协议书
2015/01/29 职场文书
员工离职证明范本
2015/06/12 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书