【发布时间】:2021-01-08 12:13:23
【问题描述】:
我有一个 [2x2x2] numpy 数组 a 并希望将其扩展为 [4x4x4],例如 b。前提是扩大价值观。它应该看起来像这样:
a = array([[[1, 2],
[-2, -1]],
[[3, -4],
[4, -3]]])
b = array([[[1, 1, 2, 2],
[1, 1, 2, 2],
[-2, -2, -1, -1],
[-2, -2, -1, -1]],
[[1, 1, 2, 2],
[1, 1, 2, 2],
[-2, -2, -1, -1],
[-2, -2, -1, -1]],
[[3, 3, -4, -4],
[3, 3, -4, -4],
[4, 4, -3, -3],
[4, 4, -3, -3]],
[[3, 3, -4, -4],
[3, 3, -4, -4],
[4, 4, -3, -3],
[4, 4, -3, -3]]])
简单地说,a 的每个值都扩展为具有相同值的 [2x2x2]。
我当前的尝试只是硬编码。
b = np.zeros(shape=(4, 4, 4), dtype='int')
b[0:2, 0:2, 0:2] = a[0, 0, 0]
b[0:2, 0:2, 2:] = a[0, 0, 1]
b[0:2, 2:, 2:] = a[0, 1, 1]
b[0:2, 2:, 0:2] = a[0, 1, 0]
b[2:, 0:2, 0:2] = a[1, 0, 0]
b[2:, 0:2, 2:] = a[1, 0, 1]
b[2:, 2:, 2:] = a[1, 1, 1]
b[2:, 2:, 0:2] = a[1, 1, 0]
这肯定更容易。谢谢。
【问题讨论】:
标签: python-3.x numpy multidimensional-array