给定numpy中布尔值的数组A
,我想找到从顶行到底行的真值的对角线路径(从左上到右下)。诀窍是,我可以接受三种不同类型的偏移 - 垂直,水平,垂直和垂直。水平(也就是说 - 一个散布的假值。)每种偏移类型都有一个阈值 - 最大可接受实例数。
所以如果A
是:
0 0 1 0 1 0 0
0 0 0 1 0 0 0
0 0 1 0 1 0 0
然后路径[0,2], [1,3], [2,4]
将满足要求,而不使用任何偏移。
如果我们允许每种类型的偏移中的一种,并且A
是:
0 0 1 0 1 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0
然后[0,2], [1,3], [2,5], [4,6]
满足路径的要求,使用三种不同类型的偏移中的每一种。
我要蛮力这个。有没有使用numpy
发现这些路径的优雅方式?或者,如果不这样做,我可以使用哪种技术可以注入恩典?