找到二维数组中的峰值位置

时间:2016-04-15 16:14:11

标签: python arrays numpy scipy

这是我的问题。
假设存在形状为100 x 100的二维数组data。使用:

indices =  np.argpartition(data.flatten(),-200)[-200:][::-1]
loc = np.vstack(np.unravel_index(indices,data.shape)).T
loc = pd.DataFrame(loc)   

我可以获得200个最大值的位置索引。

但是如何搜索二维数组的峰值。为了表达更多的讽刺,我绘制了一个三维图来显示“峰值”。恕我直言,peak是值大于其附近网格的位置,但可能对整个区域无关紧要。

enter image description here

在上图中,一些peak由于其最高值而以红色绘制,一些peak由于其非大值而以绿色绘制。

是否有任何方法可以在整个区域搜索这些peak

目前,我有一个想法可以循环所有网格及其附近的网格。如果一个网格的值高于其周围的任何一个网格,则该网格点将被视为peak

0 个答案:

没有答案