0

我有一个对称的一维 numpy 数组,例如,如下所示:

0 1 2 1 0

我怎么能把它变成一个 3D 数组(有点类似于高斯核),中心值为 2?

作为我的意思的一个例子(尽管数学可能不正确),在 2D 中这将是这样的(尽管我需要它是 3D):

0   0   0   0   0
0  0.5  1  0.5  0
0   1   2   1   0
0  0.5  1  0.5  0
0   0   0   0   0
4

1 回答 1

1

承认这不是高斯核,以下是计算的方法:

center = a[a.size // 2]
(a[:,    np.newaxis].repeat(a.size, axis=1) * a)\
  [:, :, np.newaxis].repeat(a.size, axis=2) * a \
/ center ** 2

(不会在这里粘贴整个输出。)

于 2017-08-16T23:02:07.107 回答