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:连接多维和一维数组的主要内容,如果未能解决你的问题,请参考以下文章

Numpy 将二维数组与一维数组连接起来

Python数据分析数据的维度Numpy

python数据分析NumPy入门

Python numpy 选取数组前几位的值和下标

Python开发:NumPy学习ndarray数组

第一周——数据分析之表示 —— Numpy