我有一个二维格子(L*L),有固定的边界,并将N-S-W-E位点视为每个位点的4个邻居。每个站点都分配了一个浮点值。我是在计算其各自场地的平均增值。我想用化学信号. 以下是我的代码:
# xi_out = constant1*xi + constant2*(sum of xi's neighbours)/no_of_xi's_neighbours
import numpy as np
from scipy.signal import convolve2d
L = 6 # each side of 2D lattice
a, b = (0.1, 0.5) # two constants
arr = np.random.rand(L, L) # example 2D array
# (3,3) window representing 4 neighbours which slides over 'arr'
kernel = np.array([[0, b, 0],
[b, a, b],
[0, b, 0]])
neighbors_sum = convolve2d(arr, kernel, mode='same', boundary='fill', fillvalue=0)
print(neighbors_sum)
我找不到一种方法将每个站点的相邻值之和除以它的邻居数。在
通过以下方式,我可以找到每个站点的邻居数量,但不知道如何将这些值合并到“结果”中。有人能告诉我怎样才能做到这一点吗?或者在卷积2d中有一个更简单的内置方法来实现这一点?在
^{pr2}$
要将一个数组除以另一个元素,请使用
np.divide
:看起来这就是需要添加到代码中的所有内容;我认为它非常好。在
通常,要找到某种类型的加权平均值,可以执行以下操作:
相关问题 更多 >
编程相关推荐