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中的函数编程
Apr 13 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
Nov 29 Python
分享一下Python数据分析常用的8款工具
Apr 29 Python
完美解决python中ndarray 默认用科学计数法显示的问题
Jul 14 Python
Python 字符串换行的多种方式
Sep 06 Python
Python 利用pydub库操作音频文件的方法
Jan 09 Python
Python中正则表达式的用法总结
Feb 22 Python
基于Python函数和变量名解析
Jul 19 Python
python模拟鼠标点击和键盘输入的操作
Aug 04 Python
Python数据处理篇之Sympy系列(五)---解方程
Oct 12 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
Dec 11 Python
7个关于Python的经典基础案例
Nov 07 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引用是个坑,要慎用
2018/04/02 PHP
php ajax confirm 删除实例详解
2019/03/06 PHP
自己动手开发jQuery插件教程
2011/08/25 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
JavaScript中的逻辑判断符&amp;&amp;、||与!介绍
2014/12/31 Javascript
jQuery插件boxScroll实现图片轮播特效
2015/07/14 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
Bootstrap框架实现广告轮播效果
2016/11/28 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
JavaScript之解构赋值的理解
2019/01/30 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
vue-router源码之history类的浅析
2019/05/21 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
[43:14]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
python对html过滤处理的方法
2018/10/21 Python
Pycharm连接远程服务器并实现远程调试的实现
2019/08/02 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
Bjorn Borg官方网上商店:国际运动时尚品牌
2016/08/27 全球购物
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
c++工程师面试问题
2013/08/04 面试题
介绍一下Java中标识符的命名规则
2014/02/03 面试题
大学生党课思想汇报
2013/12/29 职场文书
大学生职业生涯规划书前言
2014/01/09 职场文书
资金主管岗位职责范本
2014/03/04 职场文书
高一学生期末评语
2014/04/25 职场文书
岗位标兵事迹材料
2014/05/17 职场文书
公司总经理岗位职责
2015/04/01 职场文书
怎样写家长意见
2015/06/04 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
欢迎新生标语2015
2015/07/16 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书