拼接NumPy数组

1 投票
6 回答
1971 浏览
提问于 2025-04-16 01:39

我在合并两个数组时遇到了问题。假设我有两个数组:

a = array([1,2,3])
b = array([4,5,6])

当我使用 vstack((a,b)) 时,我得到的是:

[[1,2,3],[4,5,6]]

如果我使用 hstack((a,b)),我得到的是:

[1,2,3,4,5,6]

但我真正想要的是:

[[1,4],[2,5],[3,6]]

我该如何在不使用循环的情况下实现这个目标(因为需要速度快)?

6 个回答

0
>>> c = [list(x) for x in zip(a,b)]
>>> c
[[1, 4], [2, 5], [3, 6]]

或者

>>> c = np.array([list(x) for x in zip(a,b)])
>>> c
array([[1, 4],
       [2, 5],
       [3, 6]])

这要看你在寻找什么。

7

试试 column_stack() 吧?

http://docs.scipy.org/doc/numpy/reference/generated/numpy.column_stack.html

另外,

vstack((a,b)).T
4

column_stack 是一个函数,用来把多个数组(可以理解为一组数据)按列的方式组合在一起。想象一下,你有几列数据,比如身高、体重和年龄,使用这个函数就可以把这些数据整齐地放在一起,形成一个新的表格。这样做的好处是,方便你对这些数据进行进一步的分析和处理。

撰写回答