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 相关文章推荐
在Linux上安装Python的Flask框架和创建第一个app实例的教程
Mar 30 Python
Python获取运行目录与当前脚本目录的方法
Jun 01 Python
Python中数字以及算数运算符的相关使用
Oct 12 Python
python实现搜索文本文件内容脚本
Jun 22 Python
python多行字符串拼接使用小括号的方法
Mar 19 Python
Python脚本修改阿里云的访问控制列表的方法
Mar 08 Python
Python supervisor强大的进程管理工具的使用
Apr 24 Python
详解Python odoo中嵌入html简单的分页功能
May 29 Python
python如何爬取网站数据并进行数据可视化
Jul 08 Python
python matplotlib饼状图参数及用法解析
Nov 04 Python
使用Python+selenium实现第一个自动化测试脚本
Mar 17 Python
关于探究python中sys.argv时遇到的问题详解
Feb 23 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初学者阅读的4本经典书籍
2016/09/23 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
laravel实现前后台路由分离的方法
2019/10/13 PHP
动态为事件添加js代码示例
2009/02/15 Javascript
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
探讨javascript是不是面向对象的语言
2013/11/21 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
JavaScript 计算笛卡尔积实例详解
2016/12/02 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
详解vue 兼容IE报错解决方案
2018/12/29 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
2019/02/21 Javascript
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
2020/11/16 Javascript
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Python 代码性能优化技巧分享
2012/08/07 Python
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
Python可变参数用法实例分析
2017/04/02 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
Python自定义一个异常类的方法
2019/06/27 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
pytorch forward两个参数实例
2020/01/17 Python
Python Json数据文件操作原理解析
2020/05/09 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
2014年电话销售工作总结
2014/12/01 职场文书
教导主任个人总结
2015/03/03 职场文书
酒会开场白大全
2015/06/01 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
课改心得体会范文
2016/01/25 职场文书
导游词之天津盘山
2019/11/01 职场文书
Python基础之pandas数据合并
2021/04/27 Python
详解运行Python的神器Jupyter Notebook
2021/06/03 Python