我一直在尝试创建一个分水岭算法,并且所有示例似乎都在Python中,但我遇到了一些问题。我一直试图在numpy文档中找到这一行的含义:
matrixVariable[A==255] = 0
但没有运气。任何人都能解释一下这项操作的作用
对于上下文中的行:label [lbl == -1] = 0
答案 0 :(得分:3)
表达式A == 255
创建一个布尔数组True
,其中A = {255},False
。
表达式matrixVariable[A==255] = 0
将与A == 255中的True
值对应的每个索引设置为0。
EG:
import numpy as np
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
B = np.zeros([3, 3])
print('before:')
print(B)
B[A>5] = 5
print('after:')
print(B)
OUT:
[[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]]
after:
[[ 0. 0. 0.]
[ 0. 0. 5.]
[ 5. 5. 5.]]
答案 1 :(得分:0)
我假设matrixVariable和A是numpy数组。如果假设是正确的那么" matrixVariable [A == 255] = 0"表达式首先获取数组A的索引,其中A的值等于255然后获取这些索引的matrixVariable值并将它们设置为" 0"
示例:
import numpy as np
matrixVariable = np.array([(1, 3),
(2, 2),
(3,1)])
A = np.array([255, 1,255])
所以A [0]和A [2]等于255
matrixVariable[A==255]=0 #then sets matrixVariable[0] and matrixVariable[2] to zero
print(matrixVariable) # this would print
[[0 0]
[2 2]
[0 0]]