【问题标题】:Adding n columns to a numpy array [duplicate]将n列添加到numpy数组[重复]
【发布时间】:2016-02-27 13:40:13
【问题描述】:

我正在制作一个程序,我需要制作一个如下所示的矩阵:

A = np.array([[ 1.,  2.,  3.],
   [ 1.,  2.,  3.],
   [ 1.,  2.,  3.],
   [ 1.,  2.,  3.]])

于是我开始思考这个np.arange(1,4)

但是,如何将np.arange(1,4)n columns 附加到A

【问题讨论】:

  • 请附上您尝试使用np.arange完整代码
  • 您想将行追加到A 还是创建看起来像您问题中的行的A?对于后一种情况,在axis=0 上使用numpy.repeat
  • 看起来他想将 (4, 4, 4, 4) (5, 5, 5, 5), ... 列添加到数组中,但是有点模糊...

标签: python numpy


【解决方案1】:

docs 中所述,您可以使用concatenate

>>> a = np.array([[1, 2], [3, 4]])
>>> b = np.array([[5, 6]])
>>> np.concatenate((a, b), axis=0)
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> np.concatenate((a, b.T), axis=1)
array([[1, 2, 5],
       [3, 4, 6]])

【讨论】:

    【解决方案2】:

    这是另一种方式,使用广播:

    In [69]: np.arange(1,4)*np.ones((4,1))
    Out[69]: 
    array([[ 1.,  2.,  3.],
           [ 1.,  2.,  3.],
           [ 1.,  2.,  3.],
           [ 1.,  2.,  3.]])
    

    【讨论】:

      【解决方案3】:

      您可以获得类似于您在问题中输入的内容:

      N = 3
      A = np.tile(np.arange(1, N+1), (N, 1))
      

      我假设你想要一个方阵?

      【讨论】:

        【解决方案4】:
        >>> np.repeat([np.arange(1, 4)], 4, 0)
        array([[1, 2, 3],
               [1, 2, 3],
               [1, 2, 3],
               [1, 2, 3]])
        

        【讨论】:

          猜你喜欢
          • 2018-08-24
          • 2014-03-05
          • 2017-07-03
          • 1970-01-01
          • 1970-01-01
          • 2021-07-16
          • 2012-06-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多