在包 scipy 中有定义二进制结构的功能(例如出租车(2,1)或棋盘(2,2))。
import numpy
from scipy import ndimage
a = numpy.zeros((6,6), dtype=numpy.int)
a[1:5, 1:5] = 1;a[3,3] = 0 ; a[2,2] = 2
s = ndimage.generate_binary_structure(2,2) # Binary structure
#.... Calculate Sum of
result_array = numpy.zeros_like(a)
我想要的是用给定的结构迭代这个数组的所有单元格。然后我想将一个函数附加到在空数组中索引的当前单元格值(示例函数 sum),它使用二进制结构中所有单元格的值。
例如:
array([[0, 0, 0, 0, 0, 0],
[0, 1, 1, 1, 1, 0],
[0, 1, 2, 1, 1, 0],
[0, 1, 1, 0, 1, 0],
[0, 1, 1, 1, 1, 0],
[0, 0, 0, 0, 0, 0]])
# 数组 a。单元格 1,2 中的值当前为 1。给定结构 s 和一个示例函数,例如 sum,结果数组 (result_array) 中的值变为 7(如果当前单元格值被排除,则为 6)。
有人有想法吗?