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修改MP3文件的方法
Jun 15 Python
Python常见格式化字符串方法小结【百分号与format方法】
Sep 18 Python
python django事务transaction源码分析详解
Mar 17 Python
python监控进程状态,记录重启时间及进程号的实例
Jul 15 Python
PyQtGraph在pyqt中的应用及安装过程
Aug 04 Python
Python 生成一个从0到n个数字的列表4种方法小结
Nov 28 Python
python程序文件扩展名知识点详解
Feb 27 Python
使用python实现CGI环境搭建过程解析
Apr 28 Python
python代码如何注释
Jun 01 Python
TensorFlow Autodiff自动微分详解
Jul 06 Python
python画条形图的具体代码
Apr 20 Python
使用Python获取字典键对应值的方法
Apr 26 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 第二节 数据类型之字符串类型
2012/04/28 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
Javascript 跨域访问解决方案
2009/02/14 Javascript
dwr spring的集成实现代码
2009/03/22 Javascript
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
JavaScript实现99乘法表及隔行变色实例代码
2016/02/24 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
2018/08/25 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
深入分析在Python模块顶层运行的代码引起的一个Bug
2014/07/04 Python
Django框架下在URLconf中指定视图缓存的方法
2015/07/23 Python
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
Python计算字符宽度的方法
2016/06/14 Python
Python在图片中添加文字的两种方法
2017/04/29 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
利用python清除移动硬盘中的临时文件
2020/10/28 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
人力资源管理毕业生自荐信
2013/11/21 职场文书
文员试用期转正自我鉴定
2014/09/14 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书
vue 实现上传组件
2021/05/31 Vue.js
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers