《深度学习与图像识别:原理与实践》—2.3.11 Numpy数组比较

举报
华章计算机 发表于 2019/07/24 20:30:16 2019/07/24
【摘要】 本节书摘来自华章计算机《深度学习与图像识别:原理与实践》一书中的第2章,第2.3.11节,作者是魏溪含 涂铭 张修鹏。

2.3.11 Numpy数组比较

Numpy有一个强大的功能是数组或矩阵的比较,数据比较之后会产生boolean值。示例代码如下:

import numpy as np

matrix = np.array([

 [5, 10, 15],

[20, 25, 30],

[35, 40, 45]

])

m = (matrix == 25)

print(m)

我们看到输出的结果如下:

[[False False False]

 [False  True False]

 [False False False]]

下面再来看一个比较复杂的例子,示例代码如下:

import numpy as np

matrix = np.array([

[5, 10, 15],

[20, 25, 30],

[35, 40, 45]

 ])

second_column_25 =  (matrix[:,1] == 25)

print(second_column_25)

print(matrix[second_column_25, :])

上述代码中,print(second_column_25)输出的是[False, True False],首先matrix[:,1]代表的是所有的行,以及索引为1的列,即[10,25,40],最后与25进行比较,得到的就是[False, True, False]。print(matrix[second_column_25, :])代表的是返回true值的那一行数据,即 [20, 25, 30]。

上述的示例是单个条件,Numpy也允许我们使用条件符来拼接多个条件,其中“&”代表的是“且”,“|”代表的是“或”。比如,vector=np.array([5,10,11,12]), equal_to_five_and_ten = (vector == 5) & (vector == 10)返回的都是false,如果是equal_to_five_or_ten = (vector == 5) | (vector == 10),则返回的是[True,True,False,False]。

比较之后,我们就可以通过np.count_nonzero(x<=3)来计算小于等于3的元素个数了,1代表True,0代表False。也可以通过np.any(x == 0),只要x中有一个元素等于0就返回True。np.all(x>0)则需要所有的元素都大于0才返回True。这一点可以帮助我们判断x里的数据是否满足一定的条件。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。