【发布时间】:2020-01-19 10:58:30
【问题描述】:
假设我有一个大小为 m x n 个元素的二维数组。
现在,我想获得所有最大值的索引。所以结果应该是这样的:
[(m1, n1), (m2, n2)] 其中m 和n 表示我的最大值的x 和y 坐标。
只有一个最大值很容易,但如果多了,我就卡住了。
import numpy as np
pixel = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 189, 12, 0, 0, 1, 0, 0, 0, 0],
[0, 6, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0, 203, 9, 0],
[0, 0, 0, 0, 0, 0, 0, 12, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 5, 245, 0, 0, 0, 7, 4, 0],
[0, 0, 0, 0, 0, 0, 0, 250, 8, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])
result = np.where(pixel == pixel.max())
print("cross detection at y:", result[0][0], "x:", result[1][0])
print(pixel)
有人有想法吗?太好了,谢谢!
【问题讨论】:
-
你能定义这些最大值是多少吗?
-
你的问题不清楚。
-
第二次尝试:基本上我有一个包含一些模糊点的图像,我想检测这些点所在的像素。例如,我有 4 个点,而不是我期望的具有 4 个 x,y 坐标的列表。由于成像结构,我知道两点不能接近 20 像素。也许现在它变得更清楚了..
标签: python arrays numpy indexing 2d