【发布时间】:2016-07-08 13:03:59
【问题描述】:
假设我有数组:
someArray = [["0","1","1","0"]
["0","1","0","1"]
["0","1","0","1"]
["0","1","1","0"]]
我想指出数组中的一个元素,然后能够识别每个相似的“接触”元素(接触意味着如果将数组视为网格,它们将通过一个或多个连接连接)。例如,在这种情况下,如果我选择 someArray[0][0],它会给我 [1][0]、[2][0] 和 [3][0],因为所有这些元素都是“ 0”,并且彼此“接触”。我只是指触摸 NESW,没有上述方向的组合。
我需要做什么才能开始研究这个?
编辑:结果证明这只是“Flood Fill”。
【问题讨论】:
-
堆栈溢出不是代码编写服务。
-
这可能对您的研究有所帮助:en.wikipedia.org/wiki/Flood_fill
-
Scipy 有一些有趣的功能可以实现这一点:
scipy.ndimage.measurements.label或find_objects -
请定义您的“感人”标准。如果将数组视为具有 N、E、S 和 W 方向的地图,您是否只包括那些在这些方向上相邻的块?您是否还包括在 NE、SE、SW 和 NW 方向上直接相邻的街区?您是否需要定义邻接矩阵来确定矩阵位置的邻居?
-
@NoctisSkytower 我会更新主帖,但你和其他人所说的大部分内容都涵盖了我的意图。它本来是 NESW,没有对角线。
标签: python arrays multidimensional-array python-3.5