【发布时间】:2016-12-23 11:57:35
【问题描述】:
我有一个 100 x 100 的 numpy 矩阵。矩阵大部分都用零填充,但也包含一些整数。例如:
[0 0 0 0 0 0 0 1]
[0 2 2 0 0 0 0 0]
[0 0 2 0 0 0 0 0] False
[0 0 0 0 0 0 0 0]
[0 3 3 0 0 0 0 0]
识别矩阵是否包含任意数量的不同类型的相邻整数的最有效方法是什么?
以上示例将返回 False。这是一个 True 示例,其中包含指示的邻接的行:
[0 0 0 0 0 0 0 1]
[0 2 2 1 1 0 0 0] <---- True
[0 0 2 0 0 0 0 0]
[0 0 0 0 0 0 0 0]
[0 3 3 0 0 0 0 0]
对角线不算相邻。所以这个例子也会返回 False:
[0 0 0 1 1 1 1 1]
[0 2 2 0 1 0 0 0]
[0 0 2 0 0 0 0 0] False
[0 3 0 0 0 0 0 0]
[3 3 3 0 0 0 0 0]
我不需要识别邻接的位置,只要它是否存在。
目前,我最好在矩阵中找到每个非零元素,然后检查其 4 个侧翼元素。
感谢所有精彩的回答。
【问题讨论】:
-
如果没有发布完整的答案,我会从带有轴参数的
numpy.diff开始。 -
谢谢,这应该会大大减少搜索区域。
-
您能否添加检查每个元素的代码。这可以消除关于测试的一些挥之不去的歧义。