这是我的问题。
假设存在形状为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
是值大于其附近网格的位置,但可能对整个区域无关紧要。
在上图中,一些peak
由于其最高值而以红色绘制,一些peak
由于其非大值而以绿色绘制。
是否有任何方法可以在整个区域搜索这些peak
。
目前,我有一个想法可以循环所有网格及其附近的网格。如果一个网格的值高于其周围的任何一个网格,则该网格点将被视为peak
。