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 流程控制实例代码
Sep 25 Python
零基础写python爬虫之爬虫编写全记录
Nov 06 Python
python在windows命令行下输出彩色文字的方法
Mar 19 Python
Python抓取百度查询结果的方法
Jul 08 Python
python从zip中删除指定后缀文件(推荐)
Dec 05 Python
Python调用.NET库的方法步骤
Dec 27 Python
Python文字截图识别OCR工具实例解析
Mar 05 Python
Python MOCK SERVER moco模拟接口测试过程解析
Apr 13 Python
Django 解决distinct无法去除重复数据的问题
May 20 Python
Python pandas如何向excel添加数据
May 22 Python
使用PyCharm官方中文语言包汉化PyCharm
Nov 18 Python
Python3+Flask安装使用教程详解
Feb 16 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 CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
magento后台无法登录解决办法的两种方法
2016/12/09 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
2019/07/12 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
jQuery焦点图轮播效果实现方法
2016/12/19 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
快速理解 JavaScript 中的 LHS 和 RHS 查询的用法
2017/08/24 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
解决vue中修改export default中脚本报一大堆错的问题
2018/08/27 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
2019/04/12 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
vue+axios 拦截器实现统一token的案例
2020/09/11 Javascript
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
[01:35]2018年度CS GO最佳战队-完美盛典
2018/12/17 DOTA
理解Python中函数的参数
2015/04/27 Python
python 转换 Javascript %u 字符串为python unicode的代码
2016/09/06 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
kafka-python 获取topic lag值方式
2019/12/23 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
世界各地的当地人的食物体验:Eatwith
2019/07/26 全球购物
村优秀党员事迹材料
2014/01/15 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
勤俭节约倡议书
2014/04/14 职场文书
大学优秀班集体申报材料
2014/05/23 职场文书
党建目标管理责任书
2014/07/25 职场文书
大型公益活动策划方案
2014/08/20 职场文书
纪检干部个人对照检查材料
2014/09/23 职场文书
个人年终总结范文
2015/03/09 职场文书
2015年小学二年级班主任工作总结
2015/05/21 职场文书