numpy array找出符合条件的数并赋值的示例代码
作者:hitrjj 发布时间:2021-07-03 05:01:38
标签:numpy,array,赋值
在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)
来源:https://blog.csdn.net/u014636245/article/details/102574938
0
投稿
猜你喜欢
- 之前都是直接拿sax,或dom等库去解析xml文件为Python的数据类型再去操作,比较繁琐,如今在写Django网站ajax操作时json
- python中捕获键盘操作一共有两种方法第一种方法:使用pygame中event方法使用方式如下:使用键盘右键为例if event.type
- 常用的四种SQL命令:1.查询数据记录(Select)语法:Select 字段串行 From table Where 字段=内容例
- 内容摘要:Cookies的值比ASP其他集合(例如Form和ServerVariables)的值要复杂得多。Cookie是一小块由浏览器存贮
- update()方法添加键 - 值对到字典dict2。此函数不返回任何值。语法以下是update()方法的语法:dict.upd
- 其实网上已经有很多ASP生成htm的文章了,有一种方法是ASP+XML的生成方法,虽然有一种好处就是不用程序写模版就可以直接引用原来的要生成
- 1、在模块中,我们需要判断__name__是否被赋值为“__main__”。python fibo.py <arguments>
- 引言上次给大家分享了:《1行Python代码,实现增值税发票识别》。在那个视频的开始,也预告了本篇的内容:把识别的发票内容,分门别类的写进E
- 一、什么是进程进程是执行中的程序,是资源分配的最小单位:操作系统以进程为单位分配存储空间,进程拥有独立地址空间、内存、数据栈等操作系统管理所
- 这篇文章主要介绍了基于python调用psutils模块过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- 今天给大家推荐一款很好用的Python编辑器,全世界90%Python开发者都会用的开发工具------Pycharm,完全免费哦1. 百度
- pygame对键盘的连续监听,供大家参考,具体内容如下大家请看下面这一段代码:for event in pygame.event.get()
- 使用cv2.imread(),cv2.imshow(),cv2.imwrite()读取、显示和保存图像一、读入图像使用函数cv2.imrea
- 1.python 和 pytorch的数据类型区别在PyTorch中无法展示字符串,因此表达字符串,需要将其转换成编码的类型,比如one_h
- 流式布局流式布局,也叫做瀑布流布局,是网页中经常使用的一种页面布局方式,它的原理就是将高度固定,然后图片的宽度自适应,这样加载出来的图片看起
- python给数据加上高斯噪声一开始用MATLAB给数据加噪声很简单,就一句话:% 给数据加指定SNR的高斯噪声signal_noise =
- 我们在建立一个大型网站的时候,往往会包括很多相同的页面框架模式,甚至一些细节元素都是相同的。但令人困扰
- 本文实例为大家分享了python机器学习实现决策树的具体代码,供大家参考,具体内容如下# -*- coding: utf-8 -*-&quo
- 问题:MySQL 5.0不能使用自动增加字段。具体原因:引起的原因是在MySQL5.0.2版本中的The Server SQL Mode 中
- rs.open sql,conn:如果sql是delete,update,insert则会返