如果我有一个像这样的numpy数组:
np.array([[5, 5, 5, 3, 5, 3, 5, 6, 2, 4],
[4, 4, 4, 5, 5, 5, 6, 5, 5, 5],
[3, 3, 6, 5, 5, 6, 5, 4, 4, 6],
[4, 4, 1, 5, 4, 6, 5, 5, 5, 5],
[4, 5, 4, 2, 4, 5, 4, 4, 5, 5],
[5, 5, 7, 7, 3, 2, 4, 4, 5, 4],
[5, 5, 6, 8, 7, 5, 3, 3, 4, 5],
[0, 0, 5, 7, 10, 7, 5, 5, 3, 5],
[0, 0, 5, 6, 6, 8, 7, 6, 5, 3],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])
如何找到最大值10?然后从它向上最接近的局部最小值是3?
找到局部最小值后,我需要找到围绕该点的局部最小值并对其进行追踪,以得到:
np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])
答案 0 :(得分:0)
您需要处理一些歧义。听起来像您想要的算法可以执行以下操作:
(请注意,可能有几个局部最小值与最大值之间的距离相等,返回的最小值取决于数组的遍历方式。)