【发布时间】:2021-10-25 03:39:48
【问题描述】:
testMat1 = np.array([[1,2,3,4],[4,5,6,7]])
testMat2 = np.array([[7,8,9,10],[10,11,12,13]])
testMat3 = np.array([[2,4,6,8],[3,5,7,9]])
这里是三个形状矩阵(2, 4)
如何将它们组合成一个形状为(3, 2, 4) 的多维数组?
np.array([testMat1, testMat2, testMat3]) 工作正常,但这不是
我正在寻找什么,因为我将不断添加更多矩阵
数组。我需要一种附加新矩阵的方法
到数组。我尝试使用np.append,但它似乎不是为此目的。
【问题讨论】:
-
通常我们建议附加到列表中。任何类型的附加到数组都需要创建一个包含完整副本的新数组。可以在适当注意尺寸的情况下完成,但效率较低。
-
@hpaulj 我明白了。但是我需要使用 numpy ndarray,所以我会附加到列表中并反复将其转换为 ndarray,这在时间和内存上都非常昂贵。有没有更好的方法?
-
我不知道随着列表的增长重复执行
np.array(alist)和重复连接之间的权衡是什么。另一种方法是将数组初始化为完整大小,并在新数组可用时“插入”它们,在适当的切片上进行计算。 -
根本问题是列表包含对可以分散在内存中的数组的引用,而多维数组的数据位于一个连续的块中。如果你想要一个更大的块,你必须做一个新的。
标签: python arrays numpy multidimensional-array append