Numpy:连接多维和一维数组

15

我有一个2x2的numpy数组:

x = array(([[1,2],[4,5]]))

我必须将其与一维数组合并(或堆叠,如果您愿意):

y = array(([3,6]))

通过将其添加到行末,从而创建一个 2x3 的 numpy 数组,输出结果如下:

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

现在 Numpy 指南中提出的方法是:

hstack((x,y))

然而,这并不起作用,并返回以下错误:

ValueError:数组必须具有相同的维数

唯一可行的解决方法似乎是这样做:
hstack((x, array(([y])).T ))

这个方法能够运行,但看起来有些不规范。似乎没有其他方法可以转置给定的数组,以便hstack能够处理它。我在想,有没有更简洁的方法来做这件事?难道numpy不能猜测我想要做什么吗?

2个回答

28

unutbu的回答通常是可行的,但在这种情况下还可以使用np.column_stack

>>> x
array([[1, 2],
       [4, 5]])
>>> y
array([3, 6])

>>> np.column_stack((x,y))
array([[1, 2, 3],
       [4, 5, 6]])

2

同样适用:

In [22]: np.append(x, y[:, np.newaxis], axis=1)
Out[22]: 
array([[1, 2, 3],
       [4, 5, 6]])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接