使用 卷积 计算邻居数:
import numpyimport scipy.signala = numpy.zeros((6,6), dtype=numpy.int) # Example arraya[2:4, 2:4] = 1;a[2,4] = 1 # with example value structureb = 1-ac = scipy.signal.convolve2d(b, numpy.ones((3,3)), mode='same')print numpy.sum(c * a)
b = 1-a允许我们计算每个零而忽略它们。
我们使用一个3x3全为内核,将每个元素设置为其元素与它的8个相邻值的和(其他内核也是可能的,例如
+仅正交相邻值的内核)。使用这些求和的值,我们屏蔽了原始输入中的零(因为我们不在乎它们的邻居),并对整个数组求和。



