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的Flask框架中web表单的教程
Apr 20 Python
通过Python使用saltstack生成服务器资产清单
Mar 01 Python
对pandas的层次索引与取值的新方法详解
Nov 06 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
Dec 19 Python
python开发游戏的前期准备
May 05 Python
对Python3之方法的覆盖与super函数详解
Jun 26 Python
在交互式环境中执行Python程序过程详解
Jul 12 Python
Django Celery异步任务队列的实现
Jul 24 Python
Python 根据日志级别打印不同颜色的日志的方法示例
Aug 08 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
Dec 10 Python
使用OpenCV对车道进行实时检测的实现示例代码
Jun 19 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执行速度全攻略(下)
2006/10/09 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
PHP stream_context_create()作用和用法分析
2011/03/29 PHP
Javascript 汉字字节判断
2009/08/01 Javascript
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
Javascript通过overflow控制列表闭合与展开的方法
2015/05/15 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
2017/01/23 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
python实现划词翻译
2020/04/23 Python
python中的内置函数getattr()介绍及示例
2014/07/20 Python
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
Python中断多重循环的思路总结
2019/10/04 Python
详解如何在PyCharm控制台中输出彩色文字和背景
2020/08/17 Python
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
商业融资计划书
2014/04/29 职场文书
八项规定对照检查材料
2014/08/31 职场文书
道路交通事故赔偿协议书
2014/10/24 职场文书
质量负责人岗位职责
2015/02/15 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
开学典礼致辞
2015/07/29 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript
MySQL七种JOIN类型小结
2021/10/24 MySQL