2024-06-16 12:36:02 发布
网友
我试图在一维二进制numpy数组中找到孤岛(连接的1的组)的数量。我已经搜索了一段时间,但似乎只能找到矩阵的解,所以很好奇是否有更快的alg
例如:
x = np.array([0,0,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0]) result = find_islands(x)
在这里,结果将是2。岛屿指数并不重要。输入数组的大小始终相同
2
你可以数岛屿的起点。孤岛的起点为0,后跟1或仅1作为第0个元素。你可以这样计算,因为numpy将1和0视为真和假
def find_islands(x): return np.sum(x[1:] & ~x[:-1]) + x[0]
对于提供的测试用例,包括来自注释的测试用例,它似乎是有效的
find_islands([0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0]) > 2 find_islands([1, 0, 1]) > 2 find_islands([0, 1, 0]) > 1 find_islands([1, 1, 0, 1]) > 2
你可以数岛屿的起点。孤岛的起点为0,后跟1或仅1作为第0个元素。你可以这样计算,因为numpy将1和0视为真和假
对于提供的测试用例,包括来自注释的测试用例,它似乎是有效的
相关问题 更多 >
编程相关推荐