使用append方法创建3d numpy数组矩阵

时间:2016-02-17 14:21:43

标签: python numpy memory arrays

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

2 个答案:

答案 0 :(得分:2)

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

import numpy as np

arr = np.empty(shape=(2, 100, 100))

arr[0,:,:] = array_2d_1
arr[1,:,:] = array_2d_2

答案 1 :(得分:1)

根据定义,你不能向数组附加任何内容,因为当数组在内存中声明时,它必须保留尽可能多的空间。

你可以做的是声明一个具有已知几何和初始值的数组,然后每行重写新值,保留“附加”行的计数器,或者当你用完时你可以加倍数组的大小太空了。