如何在2D数组中查找值的地址

时间:2018-04-13 13:05:12

标签: python arrays numpy pixel grayscale

我找到了带有

的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:预期缩进块"

有人可以告诉我错误是什么或者我如何找到这个像素的地址吗?

3 个答案:

答案 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]]