在 Numpy Python 中将一维数组附加到二维数组

Posted

技术标签:

【中文标题】在 Numpy Python 中将一维数组附加到二维数组【英文标题】:Append a 1d array to a 2d array in Numpy Python 【发布时间】:2016-05-29 17:35:28 【问题描述】:

我有一个 numpy 二维数组 [[1,2,3]]。 我需要附加一个 numpy 一维数组(比如[4,5,6]),使其变为[[1,2,3], [4,5,6]]

这很容易使用列表实现,您只需在 2D 列表上调用 append

但是如何在 Numpy 数组中做到这一点?

np.concatenatenp.append 不起作用。他们出于某种原因将数组转换为一维数组。

谢谢!

【问题讨论】:

vstack 执行np.concatenate([np.atleast_2d(m) for m in tup], 0) - 换句话说 - 确保所有输入都是二维的,然后连接。 【参考方案1】:

你想要vstack

In [45]: a = np.array([[1,2,3]])

In [46]: l = [4,5,6]

In [47]: np.vstack([a,l])
Out[47]: 
array([[1, 2, 3],
       [4, 5, 6]])

您可以堆叠多行,条件是数组必须沿除第一个轴之外的所有轴具有相同的形状。

In [53]: np.vstack([a,[[4,5,6], [7,8,9]]])
Out[53]: 
array([[1, 2, 3],
       [4, 5, 6],
       [4, 5, 6],
       [7, 8, 9]])

【讨论】:

它与 hstack 的工作方式不同... col_vector_to_append = np.column_stack([4, 5, 6]).T 是需要的 @Mehdi 肯定 vstack 是 hstack 的转置版本吧?【参考方案2】:

试试这个:

np.concatenate(([a],[b]),axis=0)

a = np.array([1,2,3])
b = np.array([4,5,6])

那么结果应该是:

数组([[1, 2, 3], [4, 5, 6]])

【讨论】:

以上是关于在 Numpy Python 中将一维数组附加到二维数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在 NumPy 中将 HDF5 2D 数组转换为 1D?

将一维 Numpy 数组作为行添加到 DataFrame

将新行附加到 numpy 数组

python - 如何在python numpy中标准化二维数组的一维? [复制]

python数据分析模块:numpy、pandas全解

带有 SWIG 的 C++ 数组到 Numpy 的 TypeError 问题