首页 > 解决方案 > Numpy数组添加一列

问题描述

对 python 来说有点新,我需要使用 numpy 来追加一列,我有一个 ndarray a[[1 2 3] [4 5 6]]和另一个 ndarray 和 b[1 7]所以最终结果应该是[[1 2 3 1] [4 5 6 7]. 我努力了

array = np.append(a , b, axis=1) 

但我明白了

所有输入数组必须具有相同的维数

(说得通)。我也试图将它插入到一个 for 循环中,但根据我在 python 中看到的内容,这些库有一种简单的方法来做事,我想知道是否有更有效的方法?

标签: pythonnumpy-ndarray

解决方案


尝试numpy.hstack将轴添加到 b -

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

np.hstack([a,b[:,None]])
array([[1, 2, 3, 1],
       [4, 5, 6, 7]])

笔记:

  1. b[:,None]添加一个轴以将 b 从一维数组(2,)转为二维(2,1)数组(与 相同b.reshape(-1,1)
  2. np.hstack现在能够水平堆叠(2,3)(2,1)给出(2,4)异形阵列

推荐阅读