在包scipy中,有一个定义二进制结构的函数(例如taxicab(2,1)或chessboard(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)
我想要的是用给定的结构s遍历这个数组的所有单元格,然后在空数组中索引的当前单元格值上附加一个函数(例如sum函数),它使用二进制结构中所有单元格的值。在
例如:
^{pr2}$#数组a。单元格1,2中的值当前为1。给定结构s和sum等示例函数,结果数组(result_array)中的值变为7(如果当前单元格值被排除,则为6)。在
有人有主意吗?在
对于求和的特殊情况,可以使用ndimage.convolve:
对于产品的特定情况,可以使用
^{pr2}$log(a*b) = log(a)+log(b)
将问题转换回涉及和的问题。例如,如果我们想要“乘积卷积”b
:我们可以计算:
如果
b
包含负值,情况会变得更复杂:但并非不可能:
如果使用2深的零墙,则更容易:
这样可以根据需要将两个子矩阵相乘并求和。(你也可以在这里做一些更详细的事情…)
^{pr2}$相关问题 更多 >
编程相关推荐