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高效编程技巧
Jan 07 Python
python实现获取客户机上指定文件并传输到服务器的方法
Mar 16 Python
Python3读取zip文件信息的方法
May 22 Python
Python中atexit模块的基本使用示例
Jul 08 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
Dec 12 Python
opencv python 基于KNN的手写体识别的实例
Aug 03 Python
Python中staticmethod和classmethod的作用与区别
Oct 11 Python
python单线程下实现多个socket并发过程详解
Jul 27 Python
django rest framework 实现用户登录认证详解
Jul 29 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
Sep 07 Python
浅谈django channels 路由误导
May 28 Python
Python+Appium新手教程
Apr 17 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 - Html Transfer Code
2006/10/09 PHP
新版PHP极大的增强功能和性能
2006/10/09 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
php中count获取多维数组长度的方法
2014/11/03 PHP
PHP实现无限级分类(不使用递归)
2015/10/22 PHP
php读取和保存base64编码的图片内容
2017/04/22 PHP
php ajax数据传输和响应方法
2018/08/21 PHP
javascript入门·对象属性方法大总结
2007/10/01 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码
2015/09/09 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
JavaScript实现同一个页面打开多张图片
2016/12/29 Javascript
详解nodejs操作mongodb数据库封装DB类
2017/04/10 NodeJs
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
vue插件实现v-model功能
2018/09/10 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
[05:13]TI4 中国战队 机场出征!!
2014/07/07 DOTA
[02:04]2020年夜魇暗潮预告片
2020/10/30 DOTA
python中redis的安装和使用
2016/12/04 Python
简单了解Python生成器是什么
2019/07/02 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
详解Python 中sys.stdin.readline()的用法
2019/09/12 Python
Python中的xlrd模块使用原理解析
2020/05/21 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
html5 标签
2009/07/16 HTML / CSS
如何开启linux的ssh服务
2015/02/14 面试题
安全生产目标责任书
2014/04/14 职场文书
企业环保标语
2014/06/10 职场文书
通知的写法
2015/04/23 职场文书
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP