【问题标题】:How to turn 1D array into symmetrical 3D array?如何将 1D 阵列变成对称的 3D 阵列?
【发布时间】:2017-08-16 22:54:45
【问题描述】:

我有一个对称的一维 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

【问题讨论】:

  • 仅供参考:gaussian 内核是一个非常具体的东西。您的数据不是高斯核。

标签: python arrays numpy gaussian gaussianblur


【解决方案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

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

【讨论】:

    猜你喜欢
    • 2012-01-16
    • 2014-03-03
    • 1970-01-01
    • 2018-12-27
    • 2017-12-03
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    相关资源
    最近更新 更多