【问题标题】:How to stack 2d array on an existing 3d array (python)如何在现有的 3d 数组上堆叠 2d 数组(python)
【发布时间】:2022-01-20 16:30:53
【问题描述】:

我正在尝试在 a1 下方“堆叠”数组 a2,以便得到具有以下形状的数组 b

a1.shape => (2, 50, 241)
a2.shape => (50, 241)

# goal
b.shape => (3, 50, 241)

这是我的尝试,但 np.stack 需要相同的形状

b = np.stack([a1, a2])

【问题讨论】:

    标签: python arrays numpy


    【解决方案1】:
    import numpy as np
    arr1 = np.random.rand(2, 50, 241)
    arr2 = np.random.rand(50, 241)
    

    重塑 arr2 使其具有相同的 3d 结构:

    arr2 = arr2.reshape(1, 50, 241)
    

    Vstack 它:

    arr3 = np.vstack((arr1, arr2))
    
    >>> arr3.shape
    (3, 50, 241)
    

    【讨论】:

      【解决方案2】:

      如果您的数组是 numpy 数组,请尝试 np.append

      b = np.append(a1, [a2])
      

      这是假设您尝试构建 b 使得 a2 是 b 的最后一项,a1 是前 2 项。

      【讨论】:

        【解决方案3】:

        尝试使用:

        a2_reshaped = a2.reshape((1,) + a2.shape)
        b = np.stack([a1, a2_reshaped])
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-09-27
          • 2023-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多