我找到了带有
的max_value(灰度2D数组[50,200])max = numpy.amax(matrice)
所以它给了我一个价值。 现在我想知道我能找到这个价值。 我试过这段代码:
for x in range (1,50):
for y in range (1,200):
if matrice[x,y]==max:
print ("[%s,%s]",x,y)
但是它给了我一条错误消息:
"对于范围内的y(1,200): IndentationError:预期缩进块"
有人可以告诉我错误是什么或者我如何找到这个像素的地址吗?
答案 0 :(得分:0)
错误是因为你没有在冒号后缩进行,所以语法看起来像这样:
for x in range (1,50):
for y in range (1,200):
if matrice[x,y]==max:
print ("[%s,%s]",x,y)
如果您对使用缩进的时间有疑问,请尝试在Python中查找缩进规则。
答案 1 :(得分:0)
您必须为每个块提供标签缩进
for x in range (1,50):
for y in range (1,200):
if matrice[x,y]==max:
print ("[%s,%s]",x,y)
答案 2 :(得分:0)
作为替代方案,您可以将逻辑矢量化。
A = np.random.randint(0, 10, (5, 5))
print(A)
# [[4 9 3 0 8]
# [5 0 3 9 0]
# [2 2 4 1 5]
# [3 5 9 0 0]
# [9 5 7 9 5]]
res = np.argwhere(A==np.amax(A))
print(res)
# [[0 1]
# [1 3]
# [3 2]
# [4 0]
# [4 3]]