【问题标题】:How to add a column to a 2D np array python? [duplicate]如何向 2D np 数组 python 添加一列? [复制]
【发布时间】:2018-06-13 05:57:35
【问题描述】:

我有一个二维数组:

1 2 3 4 5 6
2 6 5 2 4 1
8 7 9 0 0 0
2 3 4 5 6 2

如何在上述数组中添加一维数组的新列?

1
0
1
0

所以结果会是这样的?

1 2 3 4 5 6 1
2 6 5 2 4 1 0
8 7 9 0 0 0 1
2 3 4 5 6 2 0
  • 编辑:我不会在这里添加一列零。

【问题讨论】:

  • 我试过了,但这不是我的问题。他想添加一列零,所以答案是 np.zeros。我的问题不同。
  • 接受的答案建议创建零数组然后复制值,您也可以这样做,复制二维数组,然后复制一维数组
  • 接受了哪个答案?
  • @nicola 试试 np.concatenate((a,b.reshape(b.shape[0],1)),axis=1) 这很好用

标签: python arrays numpy


【解决方案1】:
np.concatenate((a,b.reshape(b.shape[0],1)),axis=1)

解决了问题

【讨论】:

    【解决方案2】:

    使用 hstack 试试这个。 vstack 垂直连接,hstack 水平连接

    >>> a=np.arange(0,24)
    >>> a=a.reshape((4,6))
    >>> a
    array([[ 0,  1,  2,  3,  4,  5],
           [ 6,  7,  8,  9, 10, 11],
           [12, 13, 14, 15, 16, 17],
           [18, 19, 20, 21, 22, 23]])
    >>> b=np.ones((4,1))
    >>> c=np.hstack((a,b))
    >>> c
    array([[  0.,   1.,   2.,   3.,   4.,   5.,   1.],
           [  6.,   7.,   8.,   9.,  10.,  11.,   1.],
           [ 12.,  13.,  14.,  15.,  16.,  17.,   1.],
           [ 18.,  19.,  20.,  21.,  22.,  23.,   1.]])
    >>> 
    

    【讨论】:

      【解决方案3】:

      numpy 中的 append 方法可以完成这项工作

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

      输出如下:

      [[1 2 3 5]
       [3 4 5 6]]
      

      【讨论】:

      • 不,不幸的是它不是。
      • ValueError: 所有输入数组必须具有相同的维数这是我得到的。
      • 我在解决方案中添加了更多步骤
      • 是的,我试过了
      • 成功了吗?它至少对我有用。只需检查您是否在新变量中传递了二维数组(在我的情况下为变量 b)
      【解决方案4】:

      也可以试试np.insert

      x = np.array([[1, 2, 3, 4, 5, 6],
                    [2, 6, 5, 2, 4, 1],
                    [8, 7, 9, 0, 0, 0],
                    [2, 3, 4, 5, 6, 2]])
      y = np.array([1, 0, 1, 0])
      # inserting at the 6th column can be achieved with this
      np.insert(x, 6, y, axis=1)
      
      array([[1, 2, 3, 4, 5, 6, 1],
             [2, 6, 5, 2, 4, 1, 0],
             [8, 7, 9, 0, 0, 0, 1],
             [2, 3, 4, 5, 6, 2, 0]])
      

      【讨论】:

        猜你喜欢
        • 2020-04-04
        • 2022-07-08
        • 2017-03-21
        • 1970-01-01
        • 1970-01-01
        • 2022-08-03
        • 2018-08-28
        • 1970-01-01
        • 2013-01-28
        相关资源
        最近更新 更多