该主题的名称是什么?

时间:2019-10-22 18:54:22

标签: python python-3.x

我在Numpy数组中看到了一些条件检查的编码, 就像数组是a = np.zeros((10,10))

做类似的事情,

a [a == 255] = 0

现在有了这个简单的事情,我已经看到人们正在做复杂的事情, 这个概念叫什么?

1 个答案:

答案 0 :(得分:0)

除了索引之外,我认为它没有其他名称。每种类型都可以定义这种索引的含义,因此,列表作为整数索引容器的常见示例并不是唯一可以做的事情。

numpy.array首先会重载其__eq__运算符,以使类似a == 255的表达式不会返回单个布尔值。相反,如果i如果结果的第a[i] == 255个元素为True,它将返回布尔值的整个 array 。也就是说,result = a == 255

相似
result = [a[i] == 255 for i in range(len(a))]

然后,__getitem__重载来处理您尝试使用另一个数组索引数组的情况。在这种情况下,结果将“选择”相应布尔值为true的数组的每个元素。作业

a[a == 255] = 0

那么大约等于

for x in range(len(a)):
    if (a == 255)[x]:
        a[x] = 0