如何检查 numpy 二维数组是否被零“包围”

ad1*_*1v7 5 python arrays numpy

是否有任何巧妙的方法来检查被零包围的 numpy 数组。

例子:

[[0,0,0,0],
 [0,1,2,0],
 [0,0,0,0]]
Run Code Online (Sandbox Code Playgroud)

我知道我可以迭代它元素明智地找出但我想知道我们可以在这里使用任何好的技巧。numpy 数组是浮点数,nxm 的任意大小。

欢迎任何想法。

Pra*_*ain 4

您可以用来numpy.any()测试 numpy 数组中是否存在非零元素。

现在,要测试二维数组是否被零包围,您可以获取第一列和最后一列以及第一行和最后一行,并测试其中是否有任何包含非零数字。

def zero_surrounded(array):
    return not (array[0,:].any() or array[-1,:].any() or array[:,0].any() or array[:,-1].any())
Run Code Online (Sandbox Code Playgroud)