【问题标题】:How to add a given number of rows and columns to a numpy array?如何将给定数量的行和列添加到 numpy 数组?
【发布时间】:2021-04-07 12:58:39
【问题描述】:

我有一个形状为 (2000,1) 的 numpy 数组,我需要形状为 (2000,7)。 我们添加的第 6 列中的值可以是任何值。 有没有什么功能或方法可以做到这一点? 谢谢。

【问题讨论】:

    标签: python arrays numpy data-science


    【解决方案1】:

    你可以试试numpy.hstack

    >>> x = np.zeros((2000, 1))
    >>> x.shape
    (2000, 1)
    >>> x = np.hstack((x, np.zeros((2000, 6))))
    >>> x.shape
    (2000, 7)
    

    【讨论】:

      【解决方案2】:

      一个有趣的选项是 np.pad 函数。

      第二个参数(pad_with - 一个 2 元组列表)定义了多少 在每个维度的开头/结尾添加元素。

      例子:

      arr = np.arange(1,7)[:, np.newaxis]
      arr.shape         # (6, 1)
      result = np.pad(arr, [(0, 0), (0, 6)])
      result.shape      # (6, 7)
      

      也可以传递第三个参数 - mode - 定义各种 什么价值来填充。有关详细信息,请参阅文档。

      【讨论】:

        【解决方案3】:

        您可以通过广播做到这一点:

        x = np.zeros((2000, 1))
        np.broadcast_to(x, (2000,7))
        

        在这种情况下,第一行中的值将沿第二个轴重复。

        【讨论】:

          猜你喜欢
          • 2010-12-26
          • 1970-01-01
          • 1970-01-01
          • 2021-07-16
          • 2012-06-21
          • 2011-04-22
          • 2014-03-05
          • 1970-01-01
          • 2017-07-03
          相关资源
          最近更新 更多