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编程中基本的数学计算使用
Feb 04 Python
Python设计模式编程中Adapter适配器模式的使用实例
Mar 02 Python
用Python实现命令行闹钟脚本实例
Sep 05 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
Sep 19 Python
Python 3.x 连接数据库示例(pymysql 方式)
Jan 19 Python
python的Crypto模块实现AES加密实例代码
Jan 22 Python
python定时按日期备份MySQL数据并压缩
Apr 19 Python
Python搭建代理IP池实现获取IP的方法
Oct 27 Python
python global和nonlocal用法解析
Feb 03 Python
基于python SMTP实现自动发送邮件教程解析
Jun 02 Python
完美解决ARIMA模型中plot_acf画不出图的问题
Jun 04 Python
Django migrate报错的解决方案
May 20 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
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
php操作JSON格式数据的实现代码
2011/12/24 PHP
一个好用的PHP验证码类实例分享
2013/12/27 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
Prototype Array对象 学习
2009/07/19 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
2013/02/01 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
javascript使用smipleChart实现简单图表
2015/01/02 Javascript
JavaScript使用addEventListener添加事件监听用法实例
2015/06/01 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
详解Python3 pickle模块用法
2019/09/16 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
python 逆向爬虫正确调用 JAR 加密逻辑
2021/01/12 Python
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
学生自我鉴定模板
2013/12/30 职场文书
工程类专业自荐信范文
2014/03/09 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
2015年社区计生工作总结
2015/04/21 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang