如何在 python 中创建一个大的矩阵矩阵?

How to create a large matrix of matrices in python?

我正在处理一个大小为 m * n 的大型矩阵,其中 m,n>100000。由于我的数据很大,我想将矩阵存储在内存中并使用 HDF5 和 PyTables。

但是,我的矩阵的元素是 5*5 维实数值的小矩阵。

我已经看过下面的post,但我想知道是否有任何其他方法可以将这种类型的数据存储在表中?

(Create a larger matrix from smaller matrices in numpy)

提前致谢

numpy中有两个相关结构。

一个是4维数组,例如np.zeros((100,100,5,5),int)。另一个是对象的二维数组。 np.zeros((100,100),dtype=object)。对于对象数组,元素可以是任何东西——字符串、数字、列表、您的 5x5 数组、其他 7x3 数组、None 等)。

在 4d 数组上做数学运算是最简单的,例如取所有 5x5 子数组的平均值,或找到所有数组的 [:,:,0,0] 角。

如果您的子数组都是 5x5,创建和填充 object 数组可能会很棘手。 np.array(...) 如果可能,尝试创建 4dim 数组。

使用 h5py 您可以将文件分块,并访问较大数组的部分内容。但是你仍然需要有一个可行的 numpy 表示来对它们做任何事情。