当给定一个 n 维矩阵和 1 的网格大小时,我想计算一个字段的最近邻居。 下面给出了二维字段的示例
P = (1,1)
p_neighbours = [(0,0),(2,2),(0,1),(0,2),(1,0),(2,0),(2,1),(1,2)]
在数学上,这可以很容易地描述为矢量系统中的 P +/- 1(据我所知)。 n维邻居数组的大小描述为(n^3)-1 我已经找到了一个很好的 old topic ,无论如何我不明白如何将所提出的任何解决方案扩展到 n 维函数..
最佳答案
from itertools import product
def stencil(dim):
stencils = list(product([-1,0,1], repeat=dim))
zero = ((0,) * dim)
stencils.remove(zero)
return stencils
def neighbours(P):
stencils = stencil(len(P))
return [tuple([sum(x) for x in zip(P,s)]) for s in stencils]
P = (4, 4, 4)
print(neighbours(P))
关于python - 计算python中n维字段的邻居,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40292190/