【问题标题】:Python, interleaving two or more linspace arraysPython,交错两个或多个 linspace 数组
【发布时间】:2022-11-01 23:12:50
【问题描述】:
我有三个长度相等的 linspace 数组:a、b 和 c。我想通过以下方式将数组交错在一起。
([a[0], b[0], c[0]], [a[1], b[1], c[1]], [a[2], b[2], c[2] ], 。 。 。 ETC。)
我见过许多交错两个或多个数组的示例,但没有将关联的值组合在一起。我需要这种方式,因为在我的数组中,a[0] 与 b[0] 和 c[0] 相关联。当我打印生成的交错数组时,哪些值相互关联,而不必从一开始就计算。
我环顾四周寻找不同的解决方案,但我无法找到将相关值组合在一起的交错数组的示例。
【问题讨论】:
标签:
python
arrays
interleave
linspace
【解决方案1】:
在每个数组的最后添加一个大小为 1 的新轴,并沿新轴连接它们。
import numpy as np
a, b, c = np.linspace(0, 4, 3), np.linspace(1, 5, 3), np.linspace(2, 6, 3)
print(a, b, c)
# [0. 2. 4.] [1. 3. 5.] [2. 4. 6.]
result = np.concatenate([x.reshape(*(x.shape), 1) for x in (a, b, c)], axis=-1)
print(result)
# [[0. 1. 2.]
# [2. 3. 4.]
# [4. 5. 6.]]