Numpy:连接多维和一维数组
Posted
技术标签:
【中文标题】Numpy:连接多维和一维数组【英文标题】:Numpy: Concatenating multidimensional and unidimensional arrays 【发布时间】:2011-05-08 16:29:47 【问题描述】:我有一个 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 ))
这行得通,但看起来和听起来相当老套。似乎没有其他方法可以转置给定的数组,以便 hstack 能够消化它。我想知道,有没有更清洁的方法来做到这一点?不会有办法让 numpy 猜到我想做什么吗?
【问题讨论】:
【参考方案1】: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]])
【讨论】:
以上是关于Numpy:连接多维和一维数组的主要内容,如果未能解决你的问题,请参考以下文章