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打开url并按指定块读取网页内容的方法
Apr 29 Python
Python Socket传输文件示例
Jan 16 Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 Python
磁盘垃圾文件清理器python代码实现
Aug 24 Python
在cmd命令行里进入和退出Python程序的方法
May 12 Python
便捷提取python导入包的属性方法
Oct 15 Python
Django REST framework 视图和路由详解
Jul 19 Python
超简单的Python HTTP服务
Jul 22 Python
Python基于BeautifulSoup爬取京东商品信息
Jun 01 Python
python如何实时获取tcpdump输出
Sep 16 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
Oct 15 Python
Python实现简单的2048小游戏
Mar 01 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
我常用的几个类
2006/10/09 PHP
PHP实现显示照片exif信息的方法
2014/07/11 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
PHP测试成功的邮件发送案例
2015/10/26 PHP
关于JS管理作用域的问题
2013/04/10 Javascript
js 对小数加法精度处理示例说明
2013/12/27 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
JS表单数据验证的正则表达式(常用)
2017/02/18 Javascript
webpack独立打包和缓存处理详解
2017/04/03 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
jQuery解析json格式数据示例
2018/09/01 jQuery
React中获取数据的3种方法及优缺点
2020/02/18 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
启动targetcli时遇到错误解决办法
2017/10/26 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
python 将print输出的内容保存到txt文件中
2018/07/17 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
python3.7 sys模块的具体使用
2019/07/22 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
2019/08/07 Python
python时间日期操作方法实例小结
2020/02/06 Python
Python用input输入列表的实例代码
2020/02/07 Python
如何在VSCode下使用Jupyter的教程详解
2020/07/13 Python
django前端页面下拉选择框默认值设置方式
2020/08/09 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
露营世界:Camping World
2017/02/02 全球购物
房产电话营销开场白
2015/05/29 职场文书
小孩不笨观后感
2015/06/03 职场文书
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL