我在Numpy数组中看到了一些条件检查的编码, 就像数组是a = np.zeros((10,10))
做类似的事情,
a [a == 255] = 0
现在有了这个简单的事情,我已经看到人们正在做复杂的事情, 这个概念叫什么?
答案 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