将两个一维数组连接为两列数组

5 投票
1 回答
10922 浏览
提问于 2025-04-17 13:25
a = np.array([1, 2, 3])
aa = np.array([1], [2], [3])
b = np.array([1, 2, 3])
bb = np.array([1], [2], [3])
np.concatenate((a, b), axis = 1)
array([1, 2, 3, 1, 2, 3])     # It's ok, that's what I was expecting
np.concatenate((a, b), axis = 0)
array([1, 2, 3, 1, 2, 3])     # It's not ok, that's not what I was expecting

我原本期待的是:

array([[1, 2, 3],
       [1, 2, 3]])

即使用 aa 和 bb,我还是遇到了同样的不一致问题。那么,有没有简单的方法可以把两个一维数组沿着轴 0 连接起来呢?

1 个回答

7

注意,ab都是一维的;没有第二个维度可以拼接。你可以使用vstack来处理:

>>> import numpy as np
>>> a = np.array([1,2,3])
>>> b = a.copy()
>>> np.vstack([a,b])
array([[1, 2, 3],
       [1, 2, 3]])

另外,你也可以先调整一下ab的形状:

>>> np.concatenate([a[np.newaxis,:],b[np.newaxis,:]],axis = 0)
array([[1, 2, 3],
       [1, 2, 3]])

撰写回答