我有一个2x2 numpy数组:
x = array(([[1,2],[4,5]]))
我必须与一维数组合并(或堆叠,如果你愿意):
y = array(([3,6]))
将它添加到行的末尾,从而形成一个2x3 numpy数组,输出如下:
数组([[1,2,3], [4,5,6]])
现在,在numpy指南中提出的方法是:
hstack((x,y))
但是这不起作用,返回以下错误:
ValueError:数组必须具有相同的维数
唯一可能的解决办法似乎是这样做:
hstack((x, array(([y])).T ))
有效,但看起来和听起来相当hackish。似乎没有其他方法来转置给定的数组,因此hstack能够消化它。我想知道,有更清洁的方法吗?难道没有办法让numpy猜出我想做什么吗?
答案 0 :(得分: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]])
答案 1 :(得分:2)
也有效:
In [22]: np.append(x, y[:, np.newaxis], axis=1)
Out[22]:
array([[1, 2, 3],
[4, 5, 6]])