【问题标题】:Creating a 3d numpy array matrix using append method使用 append 方法创建一个 3d numpy 数组矩阵
【发布时间】:2016-02-17 14:21:43
【问题描述】:

有没有办法通过附加 2d numpy 数组来创建 3d numpy 数组?我目前所做的是将我的 2d numpy 数组附加到预先确定的 2d numpy 数组的初始化列表中,即 List=[np.zeros((600,600))]。附加我所有的 2d numpy 数组后,我使用 numpy.dstack 创建 3d numpy 数组。我认为这不是一个非常有效的方法。任何建议。

【问题讨论】:

    标签: python numpy memory arrays


    【解决方案1】:

    最有效的方法是先初始化 3d 数组,然后按顺序将数据写入其中。通过避免不必要的副本来提高效率。然而,收益是微乎其微的 - 只要您不使用非常大的数组(在 3 个维度中的任何一个中)。

    import numpy as np
    
    arr = np.empty(shape=(2, 100, 100))
    
    arr[0,:,:] = array_2d_1
    arr[1,:,:] = array_2d_2
    

    【讨论】:

      【解决方案2】:

      根据定义,您不能将任何内容附加到数组,因为当数组在内存中声明时,它必须保留所需的空间。

      您可以做的是声明一个具有已知几何形状和初始值的数组,然后重写每行的新值,保持“附加”行的计数器,或者您可以在用完时将数组的大小加倍空间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-09
        • 1970-01-01
        • 2022-09-22
        • 1970-01-01
        • 2010-10-08
        • 1970-01-01
        相关资源
        最近更新 更多